{"version":3,"file":"static/js/main.e40fd7e2.js","mappings":"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GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,GAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,GAAO70V,GAA6D,OAAOA,EAAIx2B,KAAI,SAAS+pC,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,GAAI,CAIrJ,IA4FIuhV,GAAsBnN,GA5FEkN,GAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKGtD,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,SAGjBwD,GAAQ,CACX,SAAiB,EACjB,UAAiB,EACjB,UAAiB,GACjB,QAAiB,GACjB,SAAiB,GACjB,QAAiB,GACjB,OAAiB,GACjB,gBAAiB,GACjB,QAAiB,KAOdC,GAAgC,CAEnC,6EAA8E,YAC9E,uDAAwD,YACxD,0DAA2D,YAC3D,uDAAwD,YAC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B,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,cAAe0N,EAAEkzX,GACpC,IAAe,CAAE5gY,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,cAAe0N,EAjN1C,SAA2BknR,EAAMn1R,EAAQkQ,GACxC,GAAIA,EAAK8vX,QAAQhgY,EAAS,IAA1B,CACA,IAAI6pB,EAAKsrQ,EAAK84E,WAAW,GAKzB,OAJA94E,EAAKjzR,GAAK,GACVizR,EAAKjzR,GAAK,EACVizR,EAAKjzR,GAAK,EAEH,CAAC2nB,EADCsrQ,EAAK84E,WAAWjuW,EAAS,GAAI,QALF,CAOrC,GA0MQ,KAAe,CAAEO,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,KAE3B,MAAO,CACNkhY,aAlqBD,SAAsBp+G,EAAkBnzQ,GACvC,IAAIqM,EAAIrM,GAAQ,CAAC,EAEjB,IADIqM,EAAEs7W,UAAY,GAAG70B,IAAQzmV,EAAEs7W,UAClB,UAAVt7W,EAAEvf,KAAkB,MAAM,IAAIyiB,MAAM,iCACvC,IAAIywI,EAAKm1N,KACLtjV,EAAQ8kV,GAAkBxjG,EAAG,SAC7BqkG,EAAQ1zW,MAAM6D,QAAQwrQ,GACtBvgH,EAAO,GAEX4+N,GAAexxO,EAAI,EAoEpB,SAAuBztJ,GACtB,IAAIqkW,EAAMgL,GAAQ,GAElB,OADAhL,EAAI8G,YAAY,EAAGnrW,GACZqkW,CACR,CAxE0B66B,CAAc,OACvCD,GAAexxO,EAAI,EAyHpB,SAAqBnuH,GACpB,IAAI+kU,EAAMgL,GAAQ,GAKlB,OAJAhL,EAAI8G,YAAY,EAAG7rU,EAAM9/B,EAAEN,GAC3BmlW,EAAI8G,YAAY,EAAG7rU,EAAM9/B,EAAEJ,GAC3BilW,EAAI8G,YAAY,EAAG7rU,EAAM9jB,EAAEtc,GAC3BmlW,EAAI8G,YAAY,EAAG7rU,EAAM9jB,EAAEpc,GACpBilW,CACR,CAhI0B86B,CAAY7/V,IAErC,IADA,IAAI8/V,EAAQhhY,KAAKC,IAAIihC,EAAM9jB,EAAEpc,EAAG,MACxB0gE,EAAIxgC,EAAM9/B,EAAEJ,EAAG0gE,GAAKs/T,IAASt/T,EAEpC,IADA,IAAIw/L,EAAKqkH,GAAW7jT,GACZb,EAAI3/B,EAAM9/B,EAAEN,EAAG+/D,GAAK3/B,EAAM9jB,EAAEtc,IAAK+/D,EAAG,CACxCa,IAAMxgC,EAAM9/B,EAAEJ,IAAGihK,EAAKphG,GAAK2kT,GAAW3kT,IACzC,IAAIhoD,EAAMopJ,EAAKphG,GAAKqgM,EAChBp8I,EAAO+hQ,GAASrkG,EAAG9gN,IAAI,IAAIb,GAAK2hN,EAAG3pQ,GACvC,GAAIisG,GAAkB,KAAVA,EAAKpjH,EAEjB,GAAa,KAAVojH,EAAKpjH,GACI,EAAPojH,EAAKljH,IAAMkjH,EAAKljH,GAAKkjH,EAAKljH,IAAM,OAASkjH,EAAKljH,GAAK,MAAOi/X,GAAexxO,EAAI,GAAMswO,EAAcj+T,EAAGb,EAAGikD,EAAKljH,IAC3Gi/X,GAAexxO,EAAI,GAAMuwO,EAAal+T,EAAGb,EAAGikD,EAAKljH,SAGtDi/X,GAAexxO,EAAI,GAAMqwO,EAAYh+T,EAAGb,EAD9BulT,GAAYthQ,GACyBxkG,MAAM,EAAG,MAE1D,CAID,OADAugX,GAAexxO,EAAI,GACZA,EAAGj9B,KACX,EAmoBC6uQ,YAjoBD,SAAqBC,EAAiB7xX,GACrC,IAAIqM,EAAIrM,GAAQ,CAAC,EAEjB,IADIqM,EAAEs7W,UAAY,GAAG70B,IAAQzmV,EAAEs7W,UAClB,UAAVt7W,EAAEvf,KAAkB,MAAM,IAAIyiB,MAAM,iCACvC,IAAIywI,EAAKm1N,KAETqc,GAAexxO,EAAI,EA2CpB,SAAuB6xO,GACtB,IAAIj7B,EAAMgL,GAAQ,IAClBhL,EAAI8G,YAAY,EAAG,MACnB9G,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GAEnB,IADA,IAAI77T,EAAO,EAAG+wH,EAAO,EAAGk/N,EAAQ,EACxBriY,EAAI,EAAGA,EAAIoiY,EAAGza,WAAWtnX,SAAUL,EAAG,CAC7C,IAAIgX,EAAOorX,EAAGza,WAAW3nX,GACrB0jR,EAAK0+G,EAAGxa,OAAO5wW,GACnB,GAAI0sQ,GAAOA,EAAG,QAAd,GACE2+G,EACF,IAAIjgW,EAAQ4kV,GAAatjG,EAAG,SACzBtxO,EAAOhQ,EAAM9jB,EAAEpc,IAAGkwC,EAAOhQ,EAAM9jB,EAAEpc,GACjCihK,EAAO/gI,EAAM9jB,EAAEtc,IAAGmhK,EAAO/gI,EAAM9jB,EAAEtc,EAJL,CAKhC,CACGowC,EAAO,OAAMA,EAAO,MAUvB,OATA+0T,EAAI8G,YAAY,EAAG77T,GACnB+0T,EAAI8G,YAAY,EAAGo0B,GACnBl7B,EAAI8G,YAAY,EAAG9qM,GACnBgkM,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GACnB9G,EAAI8G,YAAY,EAAG,GACZ9G,CACR,CArE0Bm7B,CAAcF,IAEvC,IAAI,IAAIpiY,EAAI,EAAGoyW,EAAM,EAAGpyW,EAAIoiY,EAAGza,WAAWtnX,SAAUL,GAAOoiY,EAAGxa,OAAOwa,EAAGza,WAAW3nX,KAAO,CAAC,GAAG,SAAS+hY,GAAexxO,EAAI,GAAMkxO,EAAwBW,EAAGza,WAAW3nX,GAAIoyW,MAE1K,IAAIgvB,EAAQ,EACZ,IAAIphY,EAAI,EAAGA,EAAIoiY,EAAGza,WAAWtnX,SAAUL,EAAG,CACzC,IAAI0jR,EAAK0+G,EAAGxa,OAAOwa,EAAGza,WAAW3nX,IACjC,GAAI0jR,GAAOA,EAAG,QAAd,CAKA,IAJA,IAAIthP,EAAQ8kV,GAAkBxjG,EAAG,SAC7BqkG,EAAQ1zW,MAAM6D,QAAQwrQ,GACtBvgH,EAAO,GACP++N,EAAQhhY,KAAKC,IAAIihC,EAAM9jB,EAAEpc,EAAG,MACxB0gE,EAAIxgC,EAAM9/B,EAAEJ,EAAG0gE,GAAKs/T,IAASt/T,EAEpC,IADA,IAAIw/L,EAAKqkH,GAAW7jT,GACZb,EAAI3/B,EAAM9/B,EAAEN,EAAG+/D,GAAK3/B,EAAM9jB,EAAEtc,IAAK+/D,EAAG,CACxCa,IAAMxgC,EAAM9/B,EAAEJ,IAAGihK,EAAKphG,GAAK2kT,GAAW3kT,IACzC,IAAIhoD,EAAMopJ,EAAKphG,GAAKqgM,EAChBp8I,EAAO+hQ,GAASrkG,EAAG9gN,IAAI,IAAIb,GAAK2hN,EAAG3pQ,GACvC,GAAIisG,GAAkB,KAAVA,EAAKpjH,EAEjB,GAAa,KAAVojH,EAAKpjH,EACPm/X,GAAexxO,EAAI,GAAM+wO,EAAgB1+T,EAAGb,EAAGq/T,EAAOp7Q,EAAKljH,SAI3Di/X,GAAexxO,EAAI,GAAM4wO,EAAev+T,EAAGb,EAAGq/T,EAFpC9Z,GAAYthQ,GAEmCxkG,MAAM,EAAG,MAEpE,GAEC4/W,CAtB6B,CAuBhC,CAGA,OADAW,GAAexxO,EAAI,GACZA,EAAGj9B,KACX,EA0lBCklQ,YApyBD,SAA2Bh2X,EAAe+N,GACzC,OAAOA,EAAKlT,MACX,IAAK,SAAU,OAAOyiY,EAAsB56B,GAAIV,GAAchiW,IAAK+N,GACnE,IAAK,SAAU,OAAOuvX,EAAsB56B,GAAI1iW,GAAI+N,GACpD,IAAK,SACL,IAAK,QAAS,OAAOuvX,EAAsBt9X,EAAG+N,GAE/C,KAAM,oBAAsBA,EAAKlT,IAClC,EA8xBD,CAtzBwB,GAm6BxB,IAAIklY,GAAyB,WAC5B,IAAIC,EAASlhB,GAAS,KAAMmhB,EAAUnhB,GAAS,OAE/C,SAASohB,EAAQxgY,GAEhB,IAAIU,EAAIV,EAAEmL,MAAMm1X,GAChB,IAAI5/X,EAAG,MAAO,CAACA,EAAE,IAAKE,EAAE,IAExB,IAAI8Z,EAAc,CAACha,EAAE,IAAKE,EAAEu9W,GAAYz9W,EAAE,KACtC+/X,EAAMzgY,EAAEmL,MAAMo1X,GAElB,OADGE,IAAK/lX,EAAEta,EArHZ,SAAmBqgY,GAClB,IAAIC,EAAO,CAAC,EAAG10U,EAAIy0U,EAAIt1X,MAAMqyW,IAAW1/W,EAAI,EACxC6iY,GAAO,EACX,GAAG30U,EAAG,KAAKluD,GAAGkuD,EAAE7tD,SAAUL,EAAG,CAC5B,IAAIkf,EAAI2gW,GAAY3xT,EAAEluD,IACtB,OAAOkf,EAAE,GAAG0J,QAAQ,QAAQ,KAG3B,IAAK,YAGL,IAAK,UAAW,MAGhB,IAAK,UACJ,IAAI1J,EAAE1d,IAAK,MAEZ,IAAK,WACL,IAAK,YAAaohY,EAAKhyI,OAAS,EAAG,MACnC,IAAK,YAAa,MAGlB,IAAK,WACJ,GAAY,KAAT1xO,EAAE1d,IAAY,MACjBohY,EAAK5yD,GAAKmzB,GAAM/hW,SAAS8d,EAAE1d,IAAK,KAChC,MAGD,IAAK,WACJ,IAAI0d,EAAE1d,IAAK,MAEZ,IAAK,YACL,IAAK,aAAcohY,EAAKh7O,QAAU,EAAG,MACrC,IAAK,aAAc,MAGnB,IAAK,SAAUg7O,EAAK5rX,KAAOkI,EAAE1d,IAAK,MAGlC,IAAK,MAAOohY,EAAKr0B,GAAKrvV,EAAE1d,IAAK,MAG7B,IAAK,UACJ,IAAI0d,EAAE1d,IAAK,MAEZ,IAAK,WACL,IAAK,YAAaohY,EAAKE,OAAS,EAAG,MACnC,IAAK,YAAa,MAGlB,IAAK,KACJ,IAAI5jX,EAAE1d,IAAK,MACX,OAAO0d,EAAE1d,KACR,IAAK,SAAUohY,EAAKG,KAAO,SAAU,MACrC,IAAK,mBAAoBH,EAAKG,KAAO,oBAAqB,MAC1D,IAAK,mBAAoBH,EAAKG,KAAO,oBAGvC,IAAK,MACL,IAAK,OAAQH,EAAKlkX,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,KACJ,GAAY,KAATQ,EAAE1d,IAAY,MAElB,IAAK,MACL,IAAK,OAAQohY,EAAKxgY,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,KACJ,GAAY,KAAT8c,EAAE1d,IAAY,MAElB,IAAK,MACL,IAAK,OAAQohY,EAAK5iY,EAAI,EAAG,MACzB,IAAK,OAAQ,MAGb,IAAK,SACDkf,EAAEnS,MAAK61X,EAAK91X,MAAQoS,EAAEnS,IAAIyU,MAAM,EAAE,IACrC,MACD,IAAK,UAAW,IAAK,WAAY,IAAK,WAAY,MAGlD,IAAK,UAAWohX,EAAKI,OAAS9jX,EAAE1d,IAAK,MACrC,IAAK,WAAY,IAAK,YAAa,IAAK,YAAa,MAGrD,IAAK,aAAcohY,EAAKK,OAAS/jX,EAAE1d,IAAK,MACxC,IAAK,cAAe,IAAK,eAAgB,IAAK,eAG9C,IAAK,UACL,IAAK,WAAY,IAAK,YAAa,IAAK,YAGxC,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MACnD,IAAK,OAAQqhY,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QACC,GAA0B,KAAvB3jX,EAAE,GAAG2yT,WAAW,KAAcgxD,EAAM,MAAM,IAAI/iX,MAAM,4BAA8BZ,EAAE,IAE1F,CACA,OAAO0jX,CACR,CAYgBM,CAAUP,EAAI,KACrB/lX,CACR,CACA,IAAIumX,EAAS,gBAAiBC,EAAO,iBACrC,OAAO,SAAkB1hH,GACxB,OAAOA,EAAG94P,QAAQu6W,EAAO,IAAIpgX,MAAMqgX,GAAM5jY,IAAIkjY,GAASjuX,QAAO,SAASvS,GAAK,OAAOA,EAAEY,CAAG,GACxF,CACD,CAjB6B,GAqBzBugY,GAA2B,WAC9B,IAAIC,EAAU,aAyBd,SAASC,EAAUrhY,GAClB,IAAI80T,EAAmD,CAAC,GAAG90T,EAAEY,EAAE,IAC/D,OAAIZ,EAAEY,GAEHZ,EAAEI,GA5BN,SAAoBsgY,EAAMY,EAAOC,GAChC,IAAI/qX,EAA0B,GAE3BkqX,EAAKlkX,GAAGhG,EAAMnZ,KAAK,+BACnBqjY,EAAKG,MAAMrqX,EAAMnZ,KAAK,wBAA0BqjY,EAAKG,KAAO,KAC5DH,EAAKr0B,IAAI71V,EAAMnZ,KAAK,aAAeqjY,EAAKr0B,GAAK,OAC7Cq0B,EAAKh7O,SAASlvI,EAAMnZ,KAAK,yBACzBqjY,EAAKhyI,QAAQl4O,EAAMnZ,KAAK,sBAC3BikY,EAAMjkY,KAAK,gBAAkBmZ,EAAM7a,KAAK,IAAM,MAE3C+kY,EAAKxgY,IAAKohY,EAAMjkY,KAAK,OAAQkkY,EAAMlkY,KAAK,SACxCqjY,EAAK5iY,IAAKwjY,EAAMjkY,KAAK,OAAQkkY,EAAMlkY,KAAK,SACxCqjY,EAAKE,SAAUU,EAAMjkY,KAAK,OAAQkkY,EAAMlkY,KAAK,SAEhD,IAAI2tD,EAAQ01U,EAAKK,QAAU,GACf,eAAT/1U,GAAmC,SAATA,EAAkBA,EAAQ,MACtC,aAATA,IAAsBA,EAAQ,OAC1B,IAATA,IAAes2U,EAAMjkY,KAAK,IAAM2tD,EAAQ,KAAMu2U,EAAMlkY,KAAK,KAAO2tD,EAAQ,MAE3Eu2U,EAAMlkY,KAAK,UAEZ,CAOSmkY,CAAWxhY,EAAEI,EAAG00T,EAAM,GAAIA,EAAM,IAEjCA,EAAM,GAAGn5T,KAAK,IAAMm5T,EAAM,GAAGpuS,QAAQ06W,EAAQ,SAAWtsE,EAAM,GAAGn5T,KAAK,KAJ7D,EAKjB,CAEA,OAAO,SAAkB6jR,GACxB,OAAOA,EAAGliR,IAAI+jY,GAAW1lY,KAAK,GAC/B,CACD,CAtC+B,GAyC3B8lY,GAAW,0CAA2CC,GAAW,eACjEC,GAAa,+CACjB,SAASC,GAASv6V,EAAGh5B,GACpB,IAAIwzX,GAAOxzX,GAAOA,EAAKyzX,SACnBzoR,EAAI,CAAC,EACT,OAAIhyE,GAIDA,EAAEl8B,MAAM,0BACVkuG,EAAE34G,EAAIy9W,GAAYgB,GAAS93U,EAAE/nB,MAAM+nB,EAAE9pC,QAAQ,KAAK,GAAGsjB,MAAM,kBAAkB,IAAI,KACjFw4F,EAAEr5G,EAAIm/W,GAAS93U,GACZw6V,IAAMxoR,EAAEl5G,EAAIq+W,GAAWnlQ,EAAE34G,KAGZ2mC,EAAEl8B,MAAMu2X,MACxBroR,EAAEr5G,EAAIm/W,GAAS93U,GACfgyE,EAAE34G,EAAIy9W,GAAYgB,IAAU93U,EAAE3gB,QAAQi7W,GAAY,IAAIx2X,MAAMs2X,KAAW,IAAI9lY,KAAK,IAAI+qB,QAAQ82V,GAAS,MAClGqkB,IAAMxoR,EAAEl5G,EAAIghY,GAAWd,GAAShnR,EAAEr5G,MAI/Bq5G,GAjBO,CAAE34G,EAAG,GAkBpB,CAGA,IAAIqhY,GAAQ,iDACRC,GAAQ,6BACRC,GAAQ,8BA0FZ,SAASC,GAAS/1U,GACjB,GAAuB,qBAAbo1S,GAA0B,OAAOA,GAASh5S,MAAM2lJ,OAAO6yJ,GAAc50S,GAE/E,IADA,IAAIzxC,EAAsB,GAAIy2Q,EAAKhlO,EAAItrC,MAAM,IACrC/iB,EAAI,EAAGA,EAAIqzR,EAAGhzR,SAAUL,EAAG4c,EAAE5c,GAAKqzR,EAAGrzR,GAAG6xU,WAAW,GAC3D,OAAOj1T,CACR,CAGA,SAASynX,GAAoB7uG,EAAMn1R,GAClC,IAAIuc,EAAY,CAAC,EAKjB,OAJAA,EAAE0nX,MAAQ9uG,EAAK84E,WAAW,GAC1B1xV,EAAE2nX,MAAQ/uG,EAAK84E,WAAW,GAEvBjuW,GAAU,IAAGm1R,EAAKjzR,GAAKlC,EAAS,GAC5Buc,CACR,CAaA,SAAS4nX,GAAwBhvG,GAOhC,IANA,IAAIrtQ,EAAMqtQ,EAAK84E,WAAW,GACtBh7O,EAAMkiK,EAAKjzR,EAAI4lB,EAAM,EACrBvL,EAAI,CAAC,EACLw1V,EAAM58E,EAAK84E,WAAW,GACtBm2B,EAAwC,GAEtCryB,KAAQ,GAAGqyB,EAAMllY,KAAK,CAAEqD,EAAG4yR,EAAK84E,WAAW,GAAIxrW,EAAG0yR,EAAK84E,WAAW,EAAG,UAG3E,GAFA1xV,EAAE5F,KAAOw+Q,EAAK84E,WAAW,EAAG,QAC5B1xV,EAAE6nX,MAAQA,EACPjvG,EAAKjzR,GAAK+wH,EAAK,MAAM,IAAIxzG,MAAM,0BAA4B01Q,EAAKjzR,EAAI,OAAS+wH,GAChF,OAAO12G,CACR,CAiCA,SAAS8nX,GAAclvG,GAEtB,IAAImvG,EAdL,SAAmCnvG,GAClC,IAAI54Q,EAAI,CAAC,EAQT,OAPc44Q,EAAK84E,WAAW,GAC9B94E,EAAKjzR,GAAK,EACVqa,EAAEsN,GAAKsrQ,EAAK84E,WAAW,EAAG,QAC1B1xV,EAAE5F,KAAOw+Q,EAAK84E,WAAW,EAAG,QAC5B1xV,EAAEgmD,EAAIyhU,GAAoB7uG,EAAM,GAChC54Q,EAAEmmD,EAAIshU,GAAoB7uG,EAAM,GAChC54Q,EAAEomD,EAAIqhU,GAAoB7uG,EAAM,GACzB54Q,CACR,CAIWgoX,CAA0BpvG,GAKpC,GAHAmvG,EAAIE,MAAQrvG,EAAK84E,WAAW,EAAG,SAC/Bq2B,EAAIhf,MAAQnwF,EAAK84E,WAAW,GAC5Bq2B,EAAIG,MAAQtvG,EAAK84E,WAAW,GACH,GAAtB94E,EAAK84E,WAAW,GAAY,MAAM,IAAIxuV,MAAM,uBAC/C,OAAO6kX,CACR,CAGA,SAASI,GAAuBvvG,EAAMn1R,GACrC,IAAIohD,EAAM+zO,EAAKjzR,EAAIlC,EACfuc,EAAI,CAAC,EACTA,EAAEooX,MAA8B,GAArBxvG,EAAK84E,WAAW,GAC3B94E,EAAKjzR,GAAK,EACVqa,EAAEqoX,MAAQzvG,EAAK84E,WAAW,GAC1B,IAAIr8V,GAAQ,EACZ,OAAO2K,EAAEqoX,OACR,KAAK,MAAQ,KAAK,MAAQ,KAAK,MAAQhzX,EAAoB,IAAX2K,EAAEooX,MAAgB,MAClE,KAAK,MAAQ/yX,EAAoB,GAAX2K,EAAEooX,MAAgB,MACxC,KAAK,EAAG/yX,EAAoB,IAAX2K,EAAEooX,OAA4B,GAAXpoX,EAAEooX,OAA4B,IAAXpoX,EAAEooX,MAAgB,MACzE,QAAS,KAAM,sCAAwCpoX,EAAEqoX,MAE1D,IAAIhzX,EAAO,MAAM,IAAI6N,MAAM,mCAO3B,OANAlD,EAAEsoX,UAAY1vG,EAAK84E,WAAW,GAC9B1xV,EAAEuoX,QAAU3vG,EAAK84E,WAAW,GAC5B1xV,EAAEwoX,aAAe5vG,EAAK84E,WAAW,GACjC94E,EAAKjzR,GAAK,EACVqa,EAAEyoX,QAAU7vG,EAAK84E,WAAY7sT,EAAI+zO,EAAKjzR,GAAI,EAAG,WAC7CizR,EAAKjzR,EAAIk/C,EACF7kC,CACR,CAGA,SAAS0oX,GAAyB9vG,EAAMn1R,GACvC,IAAIuc,EAAI,CAAC,EAAG6kC,EAAM+zO,EAAKjzR,EAAIlC,EAM3B,OALAm1R,EAAKjzR,GAAK,EACVqa,EAAE2oX,KAAO/vG,EAAKh0Q,MAAMg0Q,EAAKjzR,EAAGizR,EAAKjzR,EAAE,IAAKizR,EAAKjzR,GAAK,GAClDqa,EAAE4oX,SAAWhwG,EAAKh0Q,MAAMg0Q,EAAKjzR,EAAGizR,EAAKjzR,EAAE,IAAKizR,EAAKjzR,GAAK,GACzCizR,EAAK84E,WAAW,GAC7B1xV,EAAE6oX,aAAejwG,EAAKh0Q,MAAMg0Q,EAAKjzR,EAAGk/C,GAAM+zO,EAAKjzR,EAAIk/C,EAC5C7kC,CACR,CAcA,SAAS8oX,GAAiBlwG,GAEzB,GAAqB,KAAT,GADAA,EAAK84E,WAAW,IACD,MAAM,IAAIxuV,MAAM,2BAC3C,IAAIyuV,EAAK/4E,EAAK84E,WAAW,GAIzB,MAAO,CAAE1rW,EAAE,MAAOP,EAFR0iY,GAAuBvvG,EAAM+4E,GAEdzrW,EADVwiY,GAAyB9vG,EAAMA,EAAKn1R,OAASm1R,EAAKjzR,GAElE,CAEA,SAASojY,KAAqC,MAAM,IAAI7lX,MAAM,kDAAoD,CAElH,SAAS8lX,GAAiBpwG,GACzB,IAAIqwG,EAAU,CAAC,WAAW,YAAY,UAAU,WAAW,kBAAkB,iBAAiB,gBAAgB,aAC9GrwG,EAAKjzR,GAAG,EACR,IAAIujY,EAAMtwG,EAAK84E,WAAW94E,EAAKn1R,OAASm1R,EAAKjzR,EAAG,QAC5Cqa,EAAI,CAAC,EAiBT,OAhBAkpX,EAAIl9W,QAAQ82V,IAAU,SAAmBn2U,GACxC,IAAIrqB,EAAY2gW,GAAYt2U,GAC5B,OAAO22U,GAAShhW,EAAE,KACjB,IAAK,QACL,IAAK,cAAe,IAAK,gBAIzB,IAAK,mBAGL,IAAK,kBAAmB,MANxB,IAAK,WAAY2mX,EAAQxmY,SAAQ,SAASqiD,GAAK9kC,EAAE8kC,GAAKxiC,EAAEwiC,EAAI,IAAI,MAChE,IAAK,iBAAkB9kC,EAAEmpX,iBAAmB7mX,EAAE6mX,iBAAkBnpX,EAAEopX,mBAAqB9mX,EAAE8mX,mBAAoB,MAC7G,IAAK,kBAAmB,IAAK,iBAAkBppX,EAAEqpX,KAAO,GAAI,MAG5D,IAAK,gBAAiBrpX,EAAE+lS,IAAMzjS,EAAEyjS,IAAK,MAErC,IAAK,gBAAiB/lS,EAAEqpX,KAAK1mY,KAAK2f,GAAI,MACtC,QAAS,MAAMA,EAAE,GAEnB,IACOtC,CACR,CA0BA,SAASspX,GAAsCxwQ,GAC9C,IAAuBywQ,EAEenmY,EAFlCwlY,EAAW,EACXY,EAAkBhC,GAAS1uQ,GAC3BvtG,EAAMi+W,EAAgB/lY,OAAS,EAInC,KAFA8lY,EAAgBrhC,GAAY38U,IACd,GAAKi+W,EAAgB/lY,OAC/BL,EAAI,EAAGA,GAAKmoB,IAAOnoB,EAAGmmY,EAAcnmY,GAAKomY,EAAgBpmY,EAAE,GAC/D,IAAIA,EAAImoB,EAAI,EAAGnoB,GAAK,IAAKA,EAKxBwlY,IAHyC,KAAZ,MAAXA,GAAiC,EAAI,GACtCA,GAAY,EAAK,OAFnBW,EAAcnmY,GAM9B,OAAkB,MAAXwlY,CACR,CAGA,IAAIa,GAA8C,WACjD,IAAIC,EAAW,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAChGC,EAAc,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAC/HC,EAAY,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,OAE70BC,EAAS,SAASC,EAAOC,GAAS,OADsB,MAAzCC,EAC8BF,EAAQC,GADhB,EAAW,IAALC,GAArC,IAASA,CAC8C,EAajE,OAAO,SAASC,GAKf,IAJA,IAKIC,EAAMC,EAAkBC,EALxBtxQ,EAAW0uQ,GAASyC,GACpBI,EAdsB,SAASvxQ,GAGnC,IAFA,IAAIuxQ,EAASV,EAAY7wQ,EAASr1H,OAAS,GACvC6mY,EAAiB,IACblnY,EAAI01H,EAASr1H,OAAO,EAAGL,GAAK,IAAKA,EAExC,IADA,IAAImnY,EAAOzxQ,EAAS11H,GACZ+oD,EAAI,EAAQ,GAALA,IAAUA,EACd,GAAPo+U,IAAaF,GAAUT,EAAUU,IACpCC,GAAQ,IAAKD,EAGf,OAAOD,CACR,CAGcG,CAAqB1xQ,GAC9B2xQ,EAAQ3xQ,EAASr1H,OACjBinY,EAAmBxiC,GAAY,IAC3B9kW,EAAI,EAAQ,IAALA,IAAWA,EAAGsnY,EAAiBtnY,GAAK,EAUnD,IARmB,KAAP,EAARqnY,KACHP,EAAOG,GAAU,EACjBK,EAAiBD,GAASZ,EAAOH,EAAS,GAAIQ,KAC5CO,EACFP,EAAgB,IAATG,EACPF,EAAmBrxQ,EAASA,EAASr1H,OAAS,GAC9CinY,EAAiBD,GAASZ,EAAOM,EAAkBD,IAE9CO,EAAQ,GAEbP,EAAOG,GAAU,EACjBK,IAFED,GAEwBZ,EAAO/wQ,EAAS2xQ,GAAQP,GAElDA,EAAgB,IAATG,EACPK,IAFED,GAEwBZ,EAAO/wQ,EAAS2xQ,GAAQP,GAInD,IAFAO,EAAQ,GACRL,EAAW,GAAKtxQ,EAASr1H,OACnB2mY,EAAW,GAChBF,EAAOG,GAAU,EACjBK,EAAiBD,GAASZ,EAAOH,EAASU,GAAWF,KAEnDE,EACFF,EAAgB,IAATG,EACPK,IAHED,GAGwBZ,EAAO/wQ,EAAS2xQ,GAAQP,KAChDO,IACAL,EAEH,OAAOM,CACR,CACD,CAvDkD,GAyE9CC,GAA0B,SAASV,GACtC,IAAIW,EAAgB,EAAGC,EAAWpB,GAA8BQ,GAChE,OAAO,SAASa,GACf,IAAIxjV,EAlB2B,SAAS2iV,EAAqBa,EAAMF,EAAeC,EAAUvjV,GAI7F,IAAImjV,EAAOM,EACX,IAHIzjV,IAAGA,EAAIwjV,GACPD,IAAUA,EAAWpB,GAA8BQ,IAEnDQ,EAAQ,EAAGA,GAASK,EAAKrnY,SAAUgnY,EACtCM,EAAQD,EAAKL,GAEbM,EAAoC,MADpCA,GAASF,EAASD,KACD,EAAMG,GAAO,GAC9BzjV,EAAEmjV,GAASM,IACTH,EAEH,MAAO,CAACtjV,EAAGsjV,EAAeC,EAC3B,CAKUG,CAA2B,GAAIF,EAAMF,EAAeC,GAE5D,OADAD,EAAgBtjV,EAAE,GACXA,EAAE,EACV,CACD,EAYA,SAAS2jV,GAAqBryG,EAAMn1R,EAAmBgzR,GACtD,IAAIz2Q,EAAIy2Q,GAAM,CAAC,EAGf,OAHkBz2Q,EAAEkrX,KAAOtyG,EAAK84E,WAAW,GAAI94E,EAAKjzR,GAAK,EAC3C,IAAXqa,EAAEkrX,KAAYlrX,EAAE8qX,KA5HpB,SAAyBlyG,GACxB,IAAI54Q,EAAI,CAAC,EACLwjX,EAAOxjX,EAAEmrX,sBAAwB1D,GAAoB7uG,EAAM,GAC/D,GAAiB,GAAd4qG,EAAKkE,OAA4B,GAAdlE,EAAKmE,MAAY,KAAM,6BAA+BnE,EAAKkE,MAAQ,MAAQlE,EAAKmE,MAItG,OAHA3nX,EAAE2oX,KAAO/vG,EAAK84E,WAAW,IACzB1xV,EAAEorX,kBAAoBxyG,EAAK84E,WAAW,IACtC1xV,EAAEqrX,sBAAwBzyG,EAAK84E,WAAW,IACnC1xV,CACR,CAoH2BsrX,CAAgB1yG,GACrC54Q,EAAE8qX,KAzIR,SAA+BlyG,EAAMn1R,GACpC,IAAIuc,EAAI,CAAC,EACLwjX,EAAOxjX,EAAEmrX,sBAAwB1D,GAAoB7uG,EAAM,GAC/D,GADmEn1R,GAAU,EAC5D,GAAd+/X,EAAKmE,MAAY,MAAM,IAAIzkX,MAAM,oCAAsCsgX,EAAKmE,OAC/E,GAAGnE,EAAKkE,MAAQ,GAAKlE,EAAKkE,MAAQ,EAAG,MAAM,IAAIxkX,MAAM,oCAAsCsgX,EAAKkE,OAChG1nX,EAAEooX,MAAQxvG,EAAK84E,WAAW,GAAIjuW,GAAU,EACxC,IAAIkuW,EAAK/4E,EAAK84E,WAAW,GAGzB,OAH6BjuW,GAAU,EACvCuc,EAAEurX,iBAAmBpD,GAAuBvvG,EAAM+4E,GAAKluW,GAAUkuW,EACjE3xV,EAAEwrX,mBAAqB9C,GAAyB9vG,EAAMn1R,GAC/Cuc,CACR,CA+HeyrX,CAAsB7yG,EAAMn1R,GACnCuc,CACR,CASA,IAAI0rX,GAAoB,WACvB,SAASC,EAAa/lY,EAAe+N,GACpC,OAAOA,EAAKlT,MACX,IAAK,SAAU,OAAOmrY,EAAiBhkC,GAAchiW,GAAI+N,GACzD,IAAK,SAAU,OAAOi4X,EAAiBhmY,EAAG+N,GAC1C,IAAK,SAAU,OAAOi4X,EAAiB/jC,IAAW1zM,OAAOw0M,SAAS/iW,GAAKA,EAAE1D,SAAS,UAAYqmW,GAAI3iW,GAAI+N,GACtG,IAAK,QAAU,OAAOi4X,EAAiBhrB,GAAOh7W,GAAI+N,GAEnD,MAAM,IAAIuP,MAAM,qBAAuBvP,EAAKlT,KAC7C,CAGA,SAASmrY,EAAiBn6U,EAAgB99C,GACzC,IACImzQ,GADInzQ,GAAQ,CAAC,GACQw3W,MAAS,GAAe,CAAC,EAE9C31U,EAAOic,EAAIhhD,MAAM,sBACrB,IAAI+kC,EAAK/xC,OAAQ,MAAM,IAAIyf,MAAM,qBACjC,IAAIsiB,EAAmB,CAAC9/B,EAAG,CAACN,EAAE,EAAGE,EAAE,GAAIoc,EAAG,CAACtc,EAAE,EAAGE,EAAEkwC,EAAK/xC,OAAS,IA0BhE,OAzBA+xC,EAAK/yC,SAAQ,SAASopY,EAAO7lU,GACzBvuD,MAAM6D,QAAQwrQ,KAAKA,EAAG9gN,GAAK,IAK9B,IAJA,IAEI53B,EAFA09V,EAAQ,WACRC,EAAa,EAEb5mU,GAAK,EACF/2B,EAAM09V,EAAMn7X,KAAKk7X,IAAS,CAChC,GACM,WADCz9V,EAAI,GACV,CACC,IAAIwU,EAAOipV,EAAMjnX,MAAMmnX,EAAYD,EAAM54T,UAAY9kC,EAAI,GAAG3qC,QAG5D,GAFc,KAAXm/C,EAAK,KAAWA,EAAOA,EAAKh+B,MAAM,MACnCugD,EACCviB,EAAKn/C,OAAQ,CAEf,IAAI2lH,EAAO,CAACljH,EAAG08C,EAAM58C,EAAE,KACpByR,MAAM6D,QAAQwrQ,GAAKA,EAAG9gN,GAAGb,GAAKikD,EAC5B09J,EAAG4iG,GAAY,CAACpkX,EAAE0gE,EAAG5gE,EAAE+/D,KAAOikD,CACpC,CACK,CAEP2iR,EAAaD,EAAM54T,SACpB,CACG/N,EAAI3/B,EAAM9jB,EAAEtc,IAAGogC,EAAM9jB,EAAEtc,EAAI+/D,EAC/B,IACA2hN,EAAG,QAAUujG,GAAa7kV,GACnBshP,CACR,CAyBA,MAAO,CACN80G,YAxBD,SAAyBh2X,EAAe+N,GAAqB,OAAOi3W,GAAkB+gB,EAAa/lY,EAAG+N,GAAOA,EAAO,EAyBnHkoX,SAAU8P,EACV7P,WAvBD,SAAsBh1G,GAIrB,IAHA,IACuC19J,EADnCppG,EAAI,CAAC,iBACL1a,EAAIglX,GAAkBxjG,EAAG,SACzBqkG,EAAQ1zW,MAAM6D,QAAQwrQ,GAClB9gN,EAAI1gE,EAAEI,EAAEJ,EAAG0gE,GAAK1gE,EAAEoc,EAAEpc,IAAK0gE,EAAG,CACnChmD,EAAErd,KAAK,uBACP,IAAI,IAAIwiE,EAAI7/D,EAAEI,EAAEN,EAAG+/D,GAAK7/D,EAAEoc,EAAEtc,IAAK+/D,EAAGnlD,EAAErd,KAAK,WAAawiE,EAAE,IAE1D,IADAnlD,EAAErd,KAAK,iBACHwiE,EAAI7/D,EAAEI,EAAEN,EAAG+/D,GAAK7/D,EAAEoc,EAAEtc,IAAK+/D,EAAG,CAC/B,IAAIs7T,EAAQ/W,GAAY,CAACpkX,EAAE0gE,EAAE5gE,EAAE+/D,KAC/BikD,EAAO+hQ,GAASrkG,EAAG9gN,IAAI,IAAIb,GAAI2hN,EAAG25G,MACZ,MAAVr3Q,EAAKljH,GAAekjH,EAAK13G,IAAK03G,EAAK9jD,KAC/CtlD,EAAErd,KAAK,KAAOymH,EAAKhhE,IAAMsiU,GAAYthQ,GAAOA,EAAKhhE,KACjDpoC,EAAErd,KAAK,UACR,CACAqd,EAAErd,KAAK,qBACR,CACA,OAAOqd,EAAE/e,KAAK,IAAM,GACrB,EAOD,CA3EwB,GAgFxB,SAAS+qY,GAAQ77X,GAChB,IAAI,IAAI/M,EAAE,EAAE4c,EAAE,EAAM,GAAH5c,IAAQA,EAAG4c,EAAM,IAAFA,GAAS7P,EAAI/M,GAAG,IAAI,IAAI+M,EAAI/M,GAAG,EAAE,EAAE+M,EAAI/M,IACvE,OAAO4c,EAAE9d,SAAS,IAAI+pB,cAAcrH,MAAM,EAC3C,CAoCA,SAASqnX,GAAS5lY,EAAKmnC,GACtB,GAAY,IAATA,EAAY,OAAOnnC,EACtB,IAAIwK,EApCL,SAAiBV,GAChB,IAAI61D,EAAI71D,EAAI,GAAG,IAAKo1D,EAAIp1D,EAAI,GAAG,IAAK+0D,EAAE/0D,EAAI,GAAG,IACzCy1D,EAAIthE,KAAKL,IAAI+hE,EAAGT,EAAGL,GAAI5T,EAAIhtD,KAAKC,IAAIyhE,EAAGT,EAAGL,GAAIC,EAAIS,EAAItU,EAC1D,GAAS,IAAN6T,EAAS,MAAO,CAAC,EAAG,EAAGa,GAE1B,IAAYC,EAARimU,EAAK,EAAUC,EAAMvmU,EAAItU,EAE7B,OADA2U,EAAId,GAAKgnU,EAAK,EAAI,EAAIA,EAAKA,GACpBvmU,GACN,KAAKI,EAAGkmU,IAAO3mU,EAAIL,GAAKC,EAAI,GAAG,EAAG,MAClC,KAAKI,EAAG2mU,GAAOhnU,EAAIc,GAAKb,EAAI,EAAI,MAChC,KAAKD,EAAGgnU,GAAOlmU,EAAIT,GAAKJ,EAAI,EAE7B,MAAO,CAAC+mU,EAAK,EAAGjmU,EAAGkmU,EAAK,EACzB,CAuBWC,CA7CX,SAAiB3mY,GAChB,IAAIua,EAAIva,EAAEmf,MAAa,MAAPnf,EAAE,GAAS,EAAE,GAAGmf,MAAM,EAAE,GACxC,MAAO,CAACpgB,SAASwb,EAAE4E,MAAM,EAAE,GAAG,IAAIpgB,SAASwb,EAAE4E,MAAM,EAAE,GAAG,IAAIpgB,SAASwb,EAAE4E,MAAM,EAAE,GAAG,IACnF,CA0CmBynX,CAAQhmY,IAG1B,OAFcwK,EAAI,GAAd28B,EAAO,EAAY38B,EAAI,IAAM,EAAI28B,GACvB,GAAK,EAAI38B,EAAI,KAAO,EAAI28B,GAC/Bw+V,GAxBR,SAAiBn7X,GAChB,IAIIw1D,EAJA7V,EAAI3/C,EAAI,GAAIo1D,EAAIp1D,EAAI,GAAI80D,EAAI90D,EAAI,GAChCs0D,EAAQ,EAAJc,GAASN,EAAI,GAAMA,EAAI,EAAIA,GAAIrU,EAAIqU,EAAIR,EAAE,EAC7Ch1D,EAAM,CAACmhD,EAAEA,EAAEA,GAAIg7U,EAAK,EAAE97U,EAG1B,GAAS,IAANyV,EAAS,OAAU,EAAHqmU,GAClB,KAAK,EAAG,KAAK,EAAGjmU,EAAIlB,EAAImnU,EAAIn8X,EAAI,IAAMg1D,EAAGh1D,EAAI,IAAMk2D,EAAG,MACtD,KAAK,EAAGA,EAAIlB,GAAK,EAAImnU,GAAOn8X,EAAI,IAAMk2D,EAAGl2D,EAAI,IAAMg1D,EAAG,MACtD,KAAK,EAAGkB,EAAIlB,GAAKmnU,EAAK,GAAMn8X,EAAI,IAAMg1D,EAAGh1D,EAAI,IAAMk2D,EAAG,MACtD,KAAK,EAAGA,EAAIlB,GAAK,EAAImnU,GAAOn8X,EAAI,IAAMk2D,EAAGl2D,EAAI,IAAMg1D,EAAG,MACtD,KAAK,EAAGkB,EAAIlB,GAAKmnU,EAAK,GAAMn8X,EAAI,IAAMg1D,EAAGh1D,EAAI,IAAMk2D,EAAG,MACtD,KAAK,EAAGA,EAAIlB,GAAK,EAAImnU,GAAOn8X,EAAI,IAAMk2D,EAAGl2D,EAAI,IAAMg1D,EAEpD,IAAI,IAAI/hE,EAAI,EAAQ,GAALA,IAAUA,EAAG+M,EAAI/M,GAAKkB,KAAKgC,MAAa,IAAP6J,EAAI/M,IACpD,OAAO+M,CACR,CAQgBo8X,CAAQ17X,GACxB,CAIA,IAAI27X,GAAU,EAAGC,GAAU,GAAIC,GAAU,EAAGC,GAAMH,GAClD,SAASnM,GAAS9jX,GAAS,OAAOjY,KAAKmN,OAAQ8K,EAASjY,KAAKgC,MAAM,IAAIqmY,IAAM,KAAOA,GAAO,CAC3F,SAASrM,GAAQvvC,GAAM,OAAQzsV,KAAKmN,OAAOs/U,EAAK,GAAG47C,GAAM,IAAM,IAAM,GAAK,CAC1E,SAASC,GAAWC,GAAO,OAAQvoY,KAAKgC,OAAOumY,EAAMF,GAAM,GAAGA,GAAI,KAAM,GAAK,CAG7E,SAASG,GAAYC,GAAS,OAAOH,GAAWtM,GAAQD,GAAS0M,IAAU,CAE3E,SAASC,GAAcD,GACtB,IAAIvkO,EAAQlkK,KAAKI,IAAIqoY,EAAQD,GAAYC,IAASE,EAAON,GACzD,GAAGnkO,EAAQ,KAAO,IAAImkO,GAAID,GAASC,GAAIF,KAAWE,GAAQroY,KAAKI,IAAIqoY,EAAQD,GAAYC,KAAWvkO,IAASA,EAAQlkK,KAAKI,IAAIqoY,EAAQD,GAAYC,IAASE,EAAON,IAChKA,GAAMM,CACP,CAaA,SAASvN,GAAYwN,GACjBA,EAAK3wX,OACP2wX,EAAK9M,IAAMC,GAAS6M,EAAK3wX,OACzB2wX,EAAKxR,IAAM4E,GAAQ4M,EAAK9M,KACxB8M,EAAKP,IAAMA,IACFO,EAAK9M,KACd8M,EAAKxR,IAAM4E,GAAQ4M,EAAK9M,KACxB8M,EAAK3wX,MAAQqwX,GAAWM,EAAKxR,KAC7BwR,EAAKP,IAAMA,IACiB,iBAAZO,EAAKxR,MACrBwR,EAAK3wX,MAAQqwX,GAAWM,EAAKxR,KAC7BwR,EAAK9M,IAAMC,GAAS6M,EAAK3wX,OACzB2wX,EAAKP,IAAMA,IAETO,EAAKC,oBAAoBD,EAAKC,WAClC,CAEA,IAAkBC,GAAJ,GACd,SAAS7M,GAAMxvC,GAAM,OAAY,GAALA,EAAUq8C,EAAK,CAC3C,SAASvN,GAAM7zJ,GAAM,OAAOA,EAAKohK,GAAM,EAAI,CAG3C,IAAIC,GAAqB,CACxB,KAAQ,OACR,MAAS,QACT,OAAU,aACV,OAAU,WACV,OAAU,YACV,WAAc,iBACd,WAAc,eACd,kBAAqB,WACrB,WAAc,SACd,UAAa,WACb,eAAkB,cAClB,eAAkB,kBAClB,eAAkB,gBAClB,sBAAyB,YACzB,cAAiB,aAgTlB,IAAIC,GAAc,CAAE,WAAY,SAAU,SAAU,WAAY,QAC5DC,GAAc,CAAE,iBAAkB,cAAe,YAAa,YAAa,oBAAqB,kBAAmB,cAAe,eAqEtI,IAAIC,GAA6B,WACjC,IAAIC,EAAc,wDACdC,EAAc,wDACdC,EAAa,oDACbC,EAAa,oDACbC,EAAe,wDAEnB,OAAO,SAAuBjrV,EAAMkrV,EAAQn6X,GAC3C,IAII3N,EAJAo4C,EAAS,CAAC,EACd,OAAIwE,IAMA58C,GALJ48C,EAAOA,EAAK52B,QAAQ,sBAAsB,IAAIA,QAAQ,+BAA+B,KAK1Evb,MAAMg9X,KA5HlB,SAAuBznY,EAAGo4C,EAAQzqC,GACjCyqC,EAAO2vV,UAAY,GAEnB,IADA,IAAIjpV,EAAsBthD,GAAKkmW,IACvBtmW,EAAE,EAAGA,EAAI0hD,EAAErhD,SAAUL,EAAGg7C,EAAO2vV,UAAUjpV,EAAE1hD,IAAMsmW,GAAU5kT,EAAE1hD,IACrE,IAAIkuD,EAAItrD,EAAE,GAAGyK,MAAMqyW,IACnB,GAAIxxT,EACJ,IAAIluD,EAAE,EAAGA,EAAIkuD,EAAE7tD,SAAUL,EAAG,CAC3B,IAAIkf,EAAI2gW,GAAY3xT,EAAEluD,IACtB,OAAOkgX,GAAShhW,EAAE,KACjB,IAAK,WAAY,IAAK,aAAc,IAAK,aAAc,IAAK,YAY5D,IAAK,YAAa,MAXlB,IAAK,UACJ,IAAI5Q,EAAE+xW,GAAYgB,GAASniW,EAAE0rX,aAAc7hV,EAAE3nD,SAAS8d,EAAEmoW,SAAS,IAEjE,GADArsU,EAAO2vV,UAAU5hV,GAAKz6C,EACnBy6C,EAAE,EAAG,CACP,GAAGA,EAAI,IAAO,CACb,IAAIA,EAAI,IAAOA,EAAI,IAAqC,MAAvB/N,EAAO2vV,UAAU5hV,KAAvBA,GAC3B/N,EAAO2vV,UAAU5hV,GAAKz6C,CACvB,CACAi+V,GAASj+V,EAAEy6C,EACZ,CACC,MAEF,QAAS,GAAGx4C,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,gBAAkBZ,EAAE,GAAK,eAEjE,CACD,CAmGiC2rX,CAAcjoY,EAAGo4C,EAAQzqC,IAGrD3N,EAAE48C,EAAKnyC,MAAMm9X,KAvPlB,SAAqB5nY,EAAGo4C,EAAQ0vV,EAAQn6X,GACvCyqC,EAAO8vV,MAAQ,GACf,IAAIlI,EAAO,CAAC,EACRC,GAAO,GACVjgY,EAAE,GAAGyK,MAAMqyW,KAAW,IAAIrgX,SAAQ,SAASkqC,GAC3C,IAAIrqB,EAAI2gW,GAAYt2U,GACpB,OAAO22U,GAAShhW,EAAE,KACjB,IAAK,SAAU,IAAK,UAAW,IAAK,WAGpC,IAAK,QAAS,IAAK,SAQnB,IAAK,UAAW,IAAK,UA2CrB,IAAK,QAAS,IAAK,QAInB,IAAK,eAAgB,IAAK,eAI1B,IAAK,YAAa,IAAK,YAIvB,IAAK,YAAa,IAAK,YA6BvB,IAAK,WAAY,IAAK,WAOtB,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MAlGnD,IAAK,UAAW,IAAK,UACpB87B,EAAO8vV,MAAMvrY,KAAKqjY,GAClBA,EAAO,CAAC,EACR,MAGD,IAAK,QAAY1jX,EAAE1d,MAAKohY,EAAK5rX,KAAOqqW,GAASniW,EAAE1d,MAAM,MAIrD,IAAK,KAAMohY,EAAKmI,KAAO7rX,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MACxD,IAAK,OAAQohY,EAAKmI,KAAO,EAAG,MAG5B,IAAK,KAAMnI,EAAKoI,OAAS9rX,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MAC1D,IAAK,OAAQohY,EAAKoI,OAAS,EAAG,MAG9B,IAAK,KACJ,OAAO9rX,EAAE1d,KACR,IAAK,OAAQohY,EAAKqI,UAAY,EAAM,MACpC,IAAK,SAAUrI,EAAKqI,UAAY,EAAM,MACtC,IAAK,SAAUrI,EAAKqI,UAAY,EAAM,MACtC,IAAK,mBAAoBrI,EAAKqI,UAAY,GAAM,MAChD,IAAK,mBAAoBrI,EAAKqI,UAAY,GACzC,MACH,IAAK,OAAQrI,EAAKqI,UAAY,EAAG,MAGjC,IAAK,UAAWrI,EAAKE,OAAS5jX,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MAC/D,IAAK,YAAaohY,EAAKE,OAAS,EAAG,MAGnC,IAAK,WAAYF,EAAKh7O,QAAU1oI,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MACjE,IAAK,aAAcohY,EAAKh7O,QAAU,EAAG,MAGrC,IAAK,UAAWg7O,EAAKhyI,OAAS1xO,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MAC/D,IAAK,YAAaohY,EAAKhyI,OAAS,EAAG,MAGnC,IAAK,YAAagyI,EAAKsI,SAAWhsX,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MACnE,IAAK,cAAeohY,EAAKsI,SAAW,EAAG,MAGvC,IAAK,UAAWtI,EAAKuI,OAASjsX,EAAE1d,IAAMs/W,GAAa5hW,EAAE1d,KAAO,EAAG,MAC/D,IAAK,YAAaohY,EAAKuI,OAAS,EAAG,MAGnC,IAAK,MAAUjsX,EAAE1d,MAAKohY,EAAKr0B,IAAMrvV,EAAE1d,KAAK,MAIxC,IAAK,aAAiB0d,EAAE1d,MAAKohY,EAAKwI,UAAYlsX,EAAE1d,KAAK,MAIrD,IAAK,UAAc0d,EAAE1d,MAAKohY,EAAKI,OAAS5hY,SAAS8d,EAAE1d,IAAI,KAAK,MAI5D,IAAK,UAAc0d,EAAE1d,MAAKohY,EAAKyI,OAASnsX,EAAE1d,KAAK,MAI/C,IAAK,WACJ,GAAY,KAAT0d,EAAE1d,IAAY,MACjB0d,EAAEg5W,SAAW/0B,GAAM/hW,SAAS8d,EAAE1d,IAAK,KACnC,MAGD,IAAK,SAIJ,GAHIohY,EAAK91X,QAAO81X,EAAK91X,MAAQ,CAAC,GAC3BoS,EAAE25T,OAAM+pD,EAAK91X,MAAM+rU,KAAOioC,GAAa5hW,EAAE25T,OAEzC35T,EAAEnS,IAAK61X,EAAK91X,MAAMC,IAAMmS,EAAEnS,IAAIyU,OAAO,QACnC,GAAGtC,EAAEosX,QAAS,CAClB1I,EAAK91X,MAAM0C,MAAQpO,SAAS8d,EAAEosX,QAAS,IACvC,IAAIC,EAAMzgB,GAAO8X,EAAK91X,MAAM0C,OACL,IAApBozX,EAAK91X,MAAM0C,QAAa+7X,EAAMzgB,GAAO,IACpCygB,IAAKA,EAAMzgB,GAAO,IACtB8X,EAAK91X,MAAMC,IAAMw+X,EAAI,GAAGzsY,SAAS,IAAMysY,EAAI,GAAGzsY,SAAS,IAAMysY,EAAI,GAAGzsY,SAAS,GAC9E,MAAUogB,EAAElO,QACX4xX,EAAK91X,MAAMkE,MAAQ5P,SAAS8d,EAAElO,MAAO,IAClCkO,EAAEkrB,OAAMw4V,EAAK91X,MAAMs9B,KAAOtpC,WAAWoe,EAAEkrB,OACvClrB,EAAElO,OAAS05X,EAAOc,eAAiBd,EAAOc,cAAcC,YAC1D7I,EAAK91X,MAAMC,IAAM87X,GAAS6B,EAAOc,cAAcC,UAAU7I,EAAK91X,MAAMkE,OAAOjE,IAAK61X,EAAK91X,MAAMs9B,MAAQ,KAIrG,MAID,IAAK,oBAKL,IAAK,OAAQy4V,GAAO,EAAM,MAJ1B,IAAK,sBAKL,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGtyX,GAAQA,EAAKwxW,MACpB8gB,EAAM,MAAM,IAAI/iX,MAAM,gBAAkBZ,EAAE,GAAK,aAGtD,GACD,CAkIgCwsX,CAAY9oY,EAAGo4C,EAAQ0vV,EAAQn6X,IAG1D3N,EAAE48C,EAAKnyC,MAAMk9X,KA5TlB,SAAqB3nY,EAAGo4C,EAAQ0vV,EAAQn6X,GACvCyqC,EAAO2wV,MAAQ,GACf,IAAItyX,EAAO,CAAC,EACRwpX,GAAO,GACVjgY,EAAE,GAAGyK,MAAMqyW,KAAW,IAAIrgX,SAAQ,SAASkqC,GAC3C,IAAIrqB,EAAI2gW,GAAYt2U,GACpB,OAAO22U,GAAShhW,EAAE,KACjB,IAAK,SAAU,IAAK,UAAW,IAAK,WAKpC,IAAK,UAGL,IAAK,iBAQL,IAAK,iBAAkB,IAAK,iBAW5B,IAAK,aAAc,IAAK,aAUxB,IAAK,aAAc,IAAK,aAGxB,IAAK,QAAS,IAAK,UACnB,IAAK,UAGL,IAAK,SAAU,IAAK,WACpB,IAAK,WAGL,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MA7CnD,IAAK,SAAU,IAAK,QAAS,IAAK,UACjC7F,EAAO,CAAC,EAAG2hC,EAAO2wV,MAAMpsY,KAAK8Z,GAAO,MAKrC,IAAK,gBACL,IAAK,kBAAmB2hC,EAAO2wV,MAAMpsY,KAAK8Z,GAAOA,EAAO,CAAC,EAAG,MAG5D,IAAK,eAAgB,IAAK,gBACtB6F,EAAE0sX,cAAavyX,EAAKuyX,YAAc1sX,EAAE0sX,aACvC,MAID,IAAK,WACAvyX,EAAKwyX,UAASxyX,EAAKwyX,QAAU,CAAC,GAC/B3sX,EAAEosX,UAASjyX,EAAKwyX,QAAQP,QAAUlqY,SAAS8d,EAAEosX,QAAS,KACtDpsX,EAAElO,QAAOqI,EAAKwyX,QAAQ76X,MAAQ5P,SAAS8d,EAAElO,MAAO,KAChDkO,EAAEkrB,OAAM/wB,EAAKwyX,QAAQzhW,KAAOtpC,WAAWoe,EAAEkrB,OAEzClrB,EAAEnS,MAAKsM,EAAKwyX,QAAQ9+X,IAAMmS,EAAEnS,IAAIyU,OAAO,IAC1C,MAID,IAAK,WACAnI,EAAKyyX,UAASzyX,EAAKyyX,QAAU,CAAC,GAC/B5sX,EAAElO,QAAOqI,EAAKyyX,QAAQ96X,MAAQ5P,SAAS8d,EAAElO,MAAO,KAChDkO,EAAEkrB,OAAM/wB,EAAKyyX,QAAQ1hW,KAAOtpC,WAAWoe,EAAEkrB,OAEhC,MAATlrB,EAAEnS,MAAasM,EAAKyyX,QAAQ/+X,IAAMmS,EAAEnS,IAAIyU,OAAO,IAClD,MAaD,IAAK,OAAQqhX,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGtyX,GAAQA,EAAKwxW,MACpB8gB,EAAM,MAAM,IAAI/iX,MAAM,gBAAkBZ,EAAE,GAAK,aAGtD,GACD,CA6PgC6sX,CAAYnpY,EAAGo4C,EAAQ0vV,EAAQn6X,IAG1D3N,EAAE48C,EAAKnyC,MAAMo9X,KA1YlB,SAAuB7nY,EAAGo4C,EAAQ0vV,EAAQn6X,GACzCyqC,EAAOgxV,QAAU,GACjB,IAAInsO,EAAS,CAAC,EACVgjO,GAAO,GACVjgY,EAAE,GAAGyK,MAAMqyW,KAAW,IAAIrgX,SAAQ,SAASkqC,GAC3C,IAAIrqB,EAAI2gW,GAAYt2U,GACpB,OAAO22U,GAAShhW,EAAE,KACjB,IAAK,WAAY,IAAK,YAAa,IAAK,aASxC,IAAK,YAGL,IAAK,UACL,IAAK,QAAS,IAAK,SACnB,IAAK,UAGL,IAAK,WACL,IAAK,SAAU,IAAK,UACpB,IAAK,WAGL,IAAK,SACL,IAAK,OAAQ,IAAK,QAClB,IAAK,SAGL,IAAK,YACL,IAAK,UAAW,IAAK,WACrB,IAAK,YAGL,IAAK,YAAa,IAAK,aAAc,IAAK,cAC1C,IAAK,cAGL,IAAK,cAAe,IAAK,eAAgB,IAAK,gBAC9C,IAAK,gBAGL,IAAK,YAAa,IAAK,aAAc,IAAK,cAC1C,IAAK,cAGL,IAAK,SAAU,IAAK,UAAW,IAAK,WACpC,IAAK,WAGL,IAAK,OAAQ,IAAK,QAAS,IAAK,SAChC,IAAK,SAGL,IAAK,SAAU,IAAK,UAEpB,IAAK,WAAY,IAAK,WAGtB,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MAtDnD,IAAK,UAAW,IAAK,WAAY,IAAK,YACrC2gJ,EAAgB,CAAC,EACd3gJ,EAAE+sX,aAAYpsO,EAAOosO,WAAanrB,GAAa5hW,EAAE+sX,aACjD/sX,EAAEgtX,eAAcrsO,EAAOqsO,aAAeprB,GAAa5hW,EAAEgtX,eACxDlxV,EAAOgxV,QAAQzsY,KAAKsgK,GACpB,MAkDD,IAAK,OAAQgjO,GAAO,EAAM,MAC1B,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGtyX,GAAQA,EAAKwxW,MACpB8gB,EAAM,MAAM,IAAI/iX,MAAM,gBAAkBZ,EAAE,GAAK,eAGtD,GACD,CAkUkCitX,CAAcvpY,EAAGo4C,EAAQ0vV,EAAQn6X,IAM9D3N,EAAE48C,EAAKnyC,MAAMi9X,KAlGlB,SAAuB1nY,EAAGo4C,EAAQzqC,GAEjC,IAAI0nU,EADJj9R,EAAOoxV,OAAS,GAEhB,IAAIvJ,GAAO,GACVjgY,EAAE,GAAGyK,MAAMqyW,KAAW,IAAIrgX,SAAQ,SAASkqC,GAC3C,IAAIrqB,EAAI2gW,GAAYt2U,GAAIvpC,EAAI,EAC5B,OAAOkgX,GAAShhW,EAAE,KACjB,IAAK,WAAY,IAAK,YAAa,IAAK,aAAc,IAAK,aAc3D,IAAK,QAYL,IAAK,eAGL,IAAK,cAEL,IAAK,gBAAiB,IAAK,gBAO3B,IAAK,UAAW,IAAK,WAAY,IAAK,YAAa,MAnCnD,IAAK,MAAO,IAAK,QAGhB,WAFA+4T,EAAK/4T,GACK,GACNlf,EAAI,EAAGA,EAAIkqY,GAAY7pY,SAAUL,EAAMi4U,EAAGiyD,GAAYlqY,MACzDi4U,EAAGiyD,GAAYlqY,IAAMoB,SAAS62U,EAAGiyD,GAAYlqY,IAAK,KACnD,IAAIA,EAAI,EAAGA,EAAImqY,GAAY9pY,SAAUL,EAAMi4U,EAAGkyD,GAAYnqY,MACzDi4U,EAAGkyD,GAAYnqY,IAAM8gX,GAAa7oC,EAAGkyD,GAAYnqY,MAClD,GAAGg7C,EAAO2vV,WAAa1yD,EAAGovC,SAAW,IACpC,IAAIrnX,EAAI,IAAOA,EAAI,KAAQA,EAAG,GAAGg7C,EAAO2vV,UAAU1yD,EAAGovC,WAAarsU,EAAO2vV,UAAU3qY,GAAI,CAAEi4U,EAAGovC,SAAWrnX,EAAG,KAAO,CAElHg7C,EAAOoxV,OAAO7sY,KAAK04U,GAAK,MAIzB,IAAK,aAAc,IAAK,eACvB,IAAIo0D,EAAY,CAAC,EACdntX,EAAEs0D,WAAU64T,EAAU74T,SAAWt0D,EAAEs0D,UACnCt0D,EAAEq0D,aAAY84T,EAAU94T,WAAar0D,EAAEq0D,YACrB,MAAlBr0D,EAAEotX,eAAsBD,EAAUC,aAAeptX,EAAEotX,cACnDptX,EAAEo+I,SAAQ+uO,EAAU/uO,OAASp+I,EAAEo+I,QAC/Bp+I,EAAEqtX,WAAUF,EAAUE,SAAWzrB,GAAa5hW,EAAEqtX,WACnDt0D,EAAGo0D,UAAYA,EACf,MASD,IAAK,oBAKL,IAAK,OAAQxJ,GAAO,EAAM,MAJ1B,IAAK,sBAKL,IAAK,SAAUA,GAAO,EAAO,MAC7B,QAAS,GAAGtyX,GAAQA,EAAKwxW,MACpB8gB,EAAM,MAAM,IAAI/iX,MAAM,gBAAkBZ,EAAE,GAAK,eAGtD,GACD,CA6CiCstX,CAAc5pY,EAAGo4C,EAAQzqC,GAOlDyqC,GA5BUA,CA6BlB,CACA,CAvCiC,GA8IjC,IAuBIyxV,GAAgBrnB,GAkEpB,IAAIsnB,GAAkBtnB,GA8NtB,IAAIunB,GAAqB,CACxB,WAAY,WAAY,WAAY,WACpC,eAAgB,eAAgB,eAChC,eAAgB,eAAgB,eAChC,aAAc,iBAGf,SAASC,GAAgBhqY,EAAG8nY,EAAQn6X,GACnCm6X,EAAOc,cAAcC,UAAY,GACjC,IAAI3+X,EAAQ,CAAC,GACZlK,EAAE,GAAGyK,MAAMqyW,KAAW,IAAIrgX,SAAQ,SAASkqC,GAC3C,IAAIrqB,EAAI2gW,GAAYt2U,GACpB,OAAOrqB,EAAE,IAER,IAAK,eAAgB,IAAK,iBAAkB,MAG5C,IAAK,aACJpS,EAAMC,IAAMmS,EAAE1d,IAAK,MAGpB,IAAK,YACJsL,EAAMC,IAAMmS,EAAE2tX,QAAS,MAcxB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,UAAW,IAAK,WACrB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,cAAe,IAAK,eACzB,IAAK,YAAa,IAAK,aACvB,IAAK,eAAgB,IAAK,gBACF,MAAnB3tX,EAAE,GAAG9b,OAAO,IACfsnY,EAAOc,cAAcC,UAAUkB,GAAmBltY,QAAQyf,EAAE,KAAOpS,EACnEA,EAAQ,CAAC,GAETA,EAAMkK,KAAOkI,EAAE,GAAGsC,MAAM,EAAGtC,EAAE,GAAG7e,OAAS,GAE1C,MAED,QAAS,GAAGkQ,GAAQA,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,gBAAkBZ,EAAE,GAAK,iBAEzE,GACD,CAGA,SAAS4tX,KAA0C,CAGnD,SAASC,KAAyC,CAElD,IAAIC,GAAY,6CACZC,GAAY,+CACZC,GAAY,6CAqBhB,IAAIC,GAAe,qDAGnB,SAASC,GAAgB5tV,EAAiBjvC,GAIzC,IAAI3N,EAFA48C,GAAwB,IAAhBA,EAAKn/C,SAAcm/C,EAAO6tV,MAGtC,IAAI3C,EAAS,CAAC,EAGd,KAAK9nY,EAAE48C,EAAKnyC,MAAM8/X,KAAgB,MAAM,IAAIrtX,MAAM,oCAGlD,OAhCD,SAA6B0/B,EAAMkrV,EAAQn6X,GAG1C,IAAI3N,EAFJ8nY,EAAOc,cAAgB,CAAC,EAIxB,CAEC,CAAC,YAAawB,GAAWJ,IAEzB,CAAC,aAAcK,GAAWH,IAE1B,CAAC,YAAaI,GAAWH,KACxB1tY,SAAQ,SAAS6uD,GAClB,KAAKtrD,EAAE48C,EAAKnyC,MAAM6gD,EAAE,KAAM,MAAM,IAAIpuC,MAAMouC,EAAE,GAAK,+BACjDA,EAAE,GAAGtrD,EAAG8nY,EAAQn6X,EACjB,GACD,CAcC+8X,CAAoB1qY,EAAE,GAAI8nY,EAAQn6X,GAClCm6X,EAAOz4B,IAAMzyT,EACNkrV,CACR,CAEA,SAAS2C,GAAYE,EAAQh9X,GAC5B,GAAGA,GAAQA,EAAKi9X,UAAW,OAAOj9X,EAAKi9X,UACvC,GAAGD,GAA+B,iBAAdA,EAAOt7B,IAAiB,OAAOs7B,EAAOt7B,IAC1D,IAAIr1V,EAAI,CAAC2iW,IAsKT,OArKA3iW,EAAEA,EAAEvc,QAAU,gGACduc,EAAEA,EAAEvc,QAAW,oBAEfuc,EAAEA,EAAEvc,QAAY,8BAChBuc,EAAEA,EAAEvc,QAAa,+DACjBuc,EAAEA,EAAEvc,QAAa,2DACjBuc,EAAEA,EAAEvc,QAAa,2CACjBuc,EAAEA,EAAEvc,QAAa,2CACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,mDACjBuc,EAAEA,EAAEvc,QAAa,+CACjBuc,EAAEA,EAAEvc,QAAa,qDACjBuc,EAAEA,EAAEvc,QAAY,iBAEhBuc,EAAEA,EAAEvc,QAAY,+BAChBuc,EAAEA,EAAEvc,QAAa,gBACjBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAc,sBAClBuc,EAAEA,EAAEvc,QAAc,sBAClBuc,EAAEA,EAAEvc,QAAc,iFAClBuc,EAAEA,EAAEvc,QAAc,+DAClBuc,EAAEA,EAAEvc,QAAc,kDAClBuc,EAAEA,EAAEvc,QAAc,8DAClBuc,EAAEA,EAAEvc,QAAc,qDAClBuc,EAAEA,EAAEvc,QAAc,qDAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,+CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,8CAClBuc,EAAEA,EAAEvc,QAAc,0DAClBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,uDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,+CAClBuc,EAAEA,EAAEvc,QAAc,kDAClBuc,EAAEA,EAAEvc,QAAc,qDAClBuc,EAAEA,EAAEvc,QAAc,qDAClBuc,EAAEA,EAAEvc,QAAc,sDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAa,iBACjBuc,EAAEA,EAAEvc,QAAa,gBACjBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAc,sBAClBuc,EAAEA,EAAEvc,QAAc,sBAClBuc,EAAEA,EAAEvc,QAAc,iFAClBuc,EAAEA,EAAEvc,QAAc,+DAClBuc,EAAEA,EAAEvc,QAAc,kDAClBuc,EAAEA,EAAEvc,QAAc,8DAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,8CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,8CAClBuc,EAAEA,EAAEvc,QAAc,0DAClBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,4CAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,uDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAc,+CAClBuc,EAAEA,EAAEvc,QAAc,kDAClBuc,EAAEA,EAAEvc,QAAc,qDAClBuc,EAAEA,EAAEvc,QAAc,2CAClBuc,EAAEA,EAAEvc,QAAc,sDAClBuc,EAAEA,EAAEvc,QAAc,6CAClBuc,EAAEA,EAAEvc,QAAa,iBACjBuc,EAAEA,EAAEvc,QAAY,kBAEhBuc,EAAEA,EAAEvc,QAAY,8BAChBuc,EAAEA,EAAEvc,QAAa,mBACjBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAe,YACnBuc,EAAEA,EAAEvc,QAAgB,4GACpBuc,EAAEA,EAAEvc,QAAgB,gHACpBuc,EAAEA,EAAEvc,QAAgB,iHACpBuc,EAAEA,EAAEvc,QAAe,aACnBuc,EAAEA,EAAEvc,QAAe,qCACnBuc,EAAEA,EAAEvc,QAAc,gBAClBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAe,YACnBuc,EAAEA,EAAEvc,QAAgB,oIACpBuc,EAAEA,EAAEvc,QAAgB,wIACpBuc,EAAEA,EAAEvc,QAAe,aACnBuc,EAAEA,EAAEvc,QAAe,qCACnBuc,EAAEA,EAAEvc,QAAc,gBAClBuc,EAAEA,EAAEvc,QAAa,oBACjBuc,EAAEA,EAAEvc,QAAa,iBACjBuc,EAAEA,EAAEvc,QAAc,mMAClBuc,EAAEA,EAAEvc,QAAc,yIAClBuc,EAAEA,EAAEvc,QAAc,yIAClBuc,EAAEA,EAAEvc,QAAa,kBACjBuc,EAAEA,EAAEvc,QAAa,qBACjBuc,EAAEA,EAAEvc,QAAc,kBAClBuc,EAAEA,EAAEvc,QAAe,gBACnBuc,EAAEA,EAAEvc,QAAgB,oJACpBuc,EAAEA,EAAEvc,QAAe,iBACnBuc,EAAEA,EAAEvc,QAAc,mBAClBuc,EAAEA,EAAEvc,QAAc,kBAClBuc,EAAEA,EAAEvc,QAAe,gBACnBuc,EAAEA,EAAEvc,QAAgB,oJACpBuc,EAAEA,EAAEvc,QAAe,iBACnBuc,EAAEA,EAAEvc,QAAc,mBAClBuc,EAAEA,EAAEvc,QAAc,kBAClBuc,EAAEA,EAAEvc,QAAe,gBACnBuc,EAAEA,EAAEvc,QAAgB,oJACpBuc,EAAEA,EAAEvc,QAAe,iBACnBuc,EAAEA,EAAEvc,QAAe,6LACnBuc,EAAEA,EAAEvc,QAAe,mDACnBuc,EAAEA,EAAEvc,QAAc,mBAClBuc,EAAEA,EAAEvc,QAAa,sBACjBuc,EAAEA,EAAEvc,QAAa,qBACjBuc,EAAEA,EAAEvc,QAAc,wDAClBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAe,YACnBuc,EAAEA,EAAEvc,QAAgB,4GACpBuc,EAAEA,EAAEvc,QAAgB,sIACpBuc,EAAEA,EAAEvc,QAAgB,kHACpBuc,EAAEA,EAAEvc,QAAe,aACnBuc,EAAEA,EAAEvc,QAAe,2FACnBuc,EAAEA,EAAEvc,QAAc,gBAClBuc,EAAEA,EAAEvc,QAAc,gCAClBuc,EAAEA,EAAEvc,QAAe,YACnBuc,EAAEA,EAAEvc,QAAgB,4GACpBuc,EAAEA,EAAEvc,QAAgB,kHACpBuc,EAAEA,EAAEvc,QAAe,aACnBuc,EAAEA,EAAEvc,QAAe,yFACnBuc,EAAEA,EAAEvc,QAAc,gBAClBuc,EAAEA,EAAEvc,QAAa,sBACjBuc,EAAEA,EAAEvc,QAAY,iBAChBuc,EAAEA,EAAEvc,QAAW,qBAEfuc,EAAEA,EAAEvc,QAAW,qBACfuc,EAAEA,EAAEvc,QAAY,YAChBuc,EAAEA,EAAEvc,QAAa,mSACjBuc,EAAEA,EAAEvc,QAAY,aAChBuc,EAAEA,EAAEvc,QAAY,YAChBuc,EAAEA,EAAEvc,QAAa,mSACjBuc,EAAEA,EAAEvc,QAAY,aAChBuc,EAAEA,EAAEvc,QAAW,sBACfuc,EAAEA,EAAEvc,QAAW,yBACfuc,EAAEA,EAAEvc,QAAU,aACPuc,EAAE/e,KAAK,GACf,CAmBA,SAAS4vY,GAAmBj4G,GAC3B,IAAI54Q,EAAI,CAAC,EAGT,OAFAA,EAAE8wX,SAAWl4G,EAAK84E,WAAW,GAC7B1xV,EAAE+wX,WAAan4G,EAAK84E,WAAW,GACxB1xV,EAAE8wX,UACR,KAAK,EAIL,KAAK,EAAGl4G,EAAKjzR,GAAK,EAAG,MAHrB,KAAK,EAAGqa,EAAEgxX,UAUZ,SAAqBp4G,EAAMn1R,GAC1B,OAAO+kX,GAAU5vF,EAAMn1R,EACxB,CAZwBwtY,CAAYr4G,EAAM,GAAI,MAC5C,KAAK,EAAG54Q,EAAEgxX,UAAYta,GAAe99F,GAAU,MAC/C,KAAK,EAAG54Q,EAAEgxX,UAXZ,SAA0Bp4G,GAAsB,OAAOA,EAAK84E,WAAW,EAAI,CAWnDw/B,CAAiBt4G,GAIxC,OADAA,EAAKjzR,GAAK,EACHqa,CACR,CAaA,SAASmxX,GAAcv4G,GACtB,IAAIw4G,EAAUx4G,EAAK84E,WAAW,GAC1B7rT,EAAK+yO,EAAK84E,WAAW,GAAK,EAC1B1xV,EAAI,CAACoxX,GACT,OAAOA,GACN,KAAK,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,EACtC,KAAK,EAAM,KAAK,GAAM,KAAK,GAAM,KAAK,GACrCpxX,EAAE,GAAK6wX,GAAmBj4G,GAAW,MACtC,KAAK,EAAM54Q,EAAE,GAbf,SAA6B44Q,EAAMn1R,GAClC,OAAO+kX,GAAU5vF,EAAMn1R,EACxB,CAWoB4tY,CAAoBz4G,EAAM/yO,GAAK,MACjD,KAAK,GAAM,KAAK,GAAM7lC,EAAE,GAAK44Q,EAAK84E,WAAkB,IAAP7rT,EAAW,EAAI,GAAI,MAChE,QAAS,MAAM,IAAI3iC,MAAM,8BAAgCkuX,EAAU,IAAMvrV,GAE1E,OAAO7lC,CACR,CAqZA,SAASsxX,GAAsBzmB,EAAOr9C,EAAgC+jE,EAAsBC,GAC3F,IACIpoR,EADA+hQ,EAAQ1zW,MAAM6D,QAAQuvW,GAE1Br9C,EAAS/qU,SAAQ,SAAS82U,GACzB,IAAIj0U,EAAI6kX,GAAY5wC,EAAQp8T,KAK5B,GAJGguW,GACEN,EAAMvlX,EAAEA,KAAIulX,EAAMvlX,EAAEA,GAAK,IAC7B8jH,EAAOyhQ,EAAMvlX,EAAEA,GAAGA,EAAEF,IACdgkH,EAAOyhQ,EAAMtxC,EAAQp8T,MACvBisG,EAAM,CACVA,EAAQ,CAACpjH,EAAE,KACRmlX,EAAON,EAAMvlX,EAAEA,GAAGA,EAAEF,GAAKgkH,EACvByhQ,EAAMtxC,EAAQp8T,KAAOisG,EAC1B,IAAI5jF,EAAQ8kV,GAAkBO,EAAM,SAAS,mBAC1CrlV,EAAM9/B,EAAEJ,EAAIA,EAAEA,IAAGkgC,EAAM9/B,EAAEJ,EAAIA,EAAEA,GAC/BkgC,EAAM9jB,EAAEpc,EAAIA,EAAEA,IAAGkgC,EAAM9jB,EAAEpc,EAAIA,EAAEA,GAC/BkgC,EAAM9/B,EAAEN,EAAIE,EAAEF,IAAGogC,EAAM9/B,EAAEN,EAAIE,EAAEF,GAC/BogC,EAAM9jB,EAAEtc,EAAIE,EAAEF,IAAGogC,EAAM9jB,EAAEtc,EAAIE,EAAEF,GAClC,IAAI+4W,EAAUkM,GAAa7kV,GACvB24U,IAAY0M,EAAM,UAASA,EAAM,QAAU1M,EAChD,CAEK/0P,EAAKhkH,IAAGgkH,EAAKhkH,EAAI,IACtB,IAAI4a,EAAiB,CAAClb,EAAGy0U,EAAQk4D,OAAQzrY,EAAGuzU,EAAQvzU,EAAGV,EAAGi0U,EAAQj0U,EAAG4gE,EAAGqrU,GACrEh4D,EAAQ9zU,IAAGua,EAAEva,EAAI8zU,EAAQ9zU,GAG5B,IAAI,IAAIrC,EAAIgmH,EAAKhkH,EAAE3B,OAAS,EAAGL,GAAK,IAAKA,EAAG,CAC3C,IAAImuY,GAAYnoR,EAAKhkH,EAAEhC,GAAG8iE,EAAG,OAC1BqrU,IAAanoR,EAAKhkH,EAAEhC,GAAG8iE,GAAGkjD,EAAKhkH,EAAEg2B,OAAOh4B,EAAG,EAC/C,CACA,GAAGmuY,GAAYC,EAAQ,IAAIpuY,EAAI,EAAGA,EAAIouY,EAAO/tY,SAAUL,EACtD,GAAG4c,EAAElb,GAAK0sY,EAAOpuY,GAAGkqB,GAAI,CAAEtN,EAAElb,EAAI0sY,EAAOpuY,GAAGgX,MAAQ4F,EAAElb,EAAG,KAAO,CAE/DskH,EAAKhkH,EAAEzC,KAAKqd,EACb,GACD,CA2MA,IAAI0xX,GAAyB3lB,GA0E7B,IAAI4lB,GAAS,uCA2Bb,IAAIrS,GAAyB,WAC5B,IAAIsS,EAAU,gFACVC,EAAmB,CAACvsY,EAAE,EAAEF,EAAE,GAC9B,SAAS0sY,EAAO5lC,EAAGC,EAAGC,EAAGC,GACxB,IAAIgd,GAAO,EAAOC,GAAO,EAET,GAAbld,EAAG3oW,OAAa6lX,GAAO,EACF,KAAhBld,EAAG5lW,OAAO,KAAa8iX,GAAO,EAAMld,EAAKA,EAAGxnV,MAAM,GAAI,IAE9C,GAAbynV,EAAG5oW,OAAa4lX,GAAO,EACF,KAAhBhd,EAAG7lW,OAAO,KAAa6iX,GAAO,EAAMhd,EAAKA,EAAGznV,MAAM,GAAI,IAE9D,IAAIohD,EAAIomS,EAAG3oW,OAAO,EAAkB,EAAhBe,SAAS4nW,EAAG,IAAM,EAAGjnS,EAAIknS,EAAG5oW,OAAO,EAAkB,EAAhBe,SAAS6nW,EAAG,IAAM,EAI3E,OAFGgd,EAAMlkT,GAAK0sU,EAAOzsY,IAAU+/D,EAC5BmkT,EAAMtjT,GAAK6rU,EAAOvsY,IAAU0gE,EACxBmmS,GAAMkd,EAAO,GAAK,KAAOS,GAAW3kT,IAAMmkT,EAAO,GAAK,KAAOO,GAAW7jT,EAChF,CACA,OAAO,SAAkB+rU,EAAiBzkC,GAEzC,OADAukC,EAASvkC,EACFykC,EAAK/lX,QAAQ4lX,EAASE,EAC9B,CACD,CAtB6B,GAwBzBE,GAAY,iLACZ9R,GAAyB,WAC5B,OAAO,SAAkB6R,EAAiBzkC,GACzC,OAAOykC,EAAK/lX,QAAQgmX,IAAW,SAASC,EAAI9lC,EAAIC,EAAIC,EAAI6lC,EAAIC,GAC3D,IAAI/sY,EAAI6kX,GAAW5d,IAAOD,EAAK,EAAIkB,EAAKloW,GACpCE,EAAIykX,GAAWooB,IAAOD,EAAK,EAAI5kC,EAAKhoW,GAGxC,OAAO6mW,EAAK,KAFE,GAAL7mW,EAAS,GAAM4sY,EAAsB5sY,EAAE,EAAnB,IAAMA,EAAI,KAEjB,KADR,GAALF,EAAS,GAAMgnW,EAAsBhnW,EAAE,EAAnB,IAAMA,EAAI,IAExC,GACD,CACD,CAV6B,GAa7B,SAASo6X,GAAkB9tX,EAAc82J,GACxC,OAAO92J,EAAEsa,QAAQgmX,IAAW,SAASC,EAAI9lC,EAAIC,EAAIC,EAAI6lC,EAAIC,GACxD,OAAOhmC,GAAQ,KAAJC,EAAUA,EAAGC,EAAKyd,GAAWG,GAAW5d,GAAI7jM,EAAMpjK,KAAS,KAAJ8sY,EAAUA,EAAGC,EAAKtoB,GAAWE,GAAWooB,GAAM3pO,EAAMljK,GACvH,GACD,CAEA,SAAS8sY,GAAmB1gY,EAAc8zB,EAAkB4jF,GAC3D,IAA6B1jH,EAArB0kX,GAAa5kV,GAAc9/B,EAAGN,EAAI+kX,GAAY/gQ,GAEtD,OAAOo2Q,GAAkB9tX,EADb,CAACpM,EAAEF,EAAEE,EAAII,EAAEJ,EAAGF,EAAEA,EAAEA,EAAIM,EAAEN,GAErC,CAQA,SAASitY,GAAM3gY,GACd,OAAOA,EAAEsa,QAAQ,WAAW,GAC7B,CACA,SAASsmX,GAAW15G,GAAQA,EAAKjzR,GAAG,CAAW,CAG/C,SAAS4sY,GAAc35G,EAAMn1R,GAC5B,IAAI2B,EAAIwzR,EAAK84E,WAAqB,GAAVjuW,EAAc,EAAI,GAC1C,MAAO,CAAK,MAAJ2B,EAAaA,GAAK,GAAM,EAAIA,GAAK,GAAM,EAChD,CAGA,SAASotY,GAAe55G,EAAMn1R,EAAQkQ,GACrC,IAAIy0C,EAAI,EACR,GAAGz0C,EAAM,CACR,GAAGA,EAAK41W,MAAQ,GAAK51W,EAAK41W,MAAQ,EAAG,OAAOkpB,GAAqB75G,GAC5C,IAAbjlR,EAAK41W,OAAYnhU,EAAI,EAC9B,CACA,IAAI9iD,EAAEszR,EAAK84E,WAAWtpT,GAAI4d,EAAE4yN,EAAK84E,WAAWtpT,GACxChjD,EAAEmtY,GAAc35G,EAAM,GACtBzzN,EAAEotU,GAAc35G,EAAM,GAC1B,MAAO,CAAElzR,EAAE,CAACJ,EAAEA,EAAGF,EAAEA,EAAE,GAAIikX,KAAKjkX,EAAE,GAAIkkX,KAAKlkX,EAAE,IAAKsc,EAAE,CAACpc,EAAE0gE,EAAG5gE,EAAE+/D,EAAE,GAAIkkT,KAAKlkT,EAAE,GAAImkT,KAAKnkT,EAAE,IACnF,CAEA,SAASstU,GAAqB75G,GAC7B,IAAItzR,EAAEitY,GAAc35G,EAAM,GAAI5yN,EAAEusU,GAAc35G,EAAM,GAChDxzR,EAAEwzR,EAAK84E,WAAW,GAClBvsS,EAAEyzN,EAAK84E,WAAW,GACtB,MAAO,CAAEhsW,EAAE,CAACJ,EAAEA,EAAE,GAAIF,EAAEA,EAAGikX,KAAK/jX,EAAE,GAAIgkX,KAAKhkX,EAAE,IAAKoc,EAAE,CAACpc,EAAE0gE,EAAE,GAAI5gE,EAAE+/D,EAAGkkT,KAAKrjT,EAAE,GAAIsjT,KAAKtjT,EAAE,IACnF,CAYA,SAAS0sU,GAAc95G,EAAMn1R,EAAQkQ,GACpC,GAAGA,GAAQA,EAAK41W,MAAQ,GAAK51W,EAAK41W,MAAQ,EAAG,OAK9C,SAA6B3wF,GAC5B,IAAItzR,EAAIitY,GAAc35G,EAAM,GACxBxzR,EAAIwzR,EAAK84E,WAAW,GACxB,MAAO,CAACpsW,EAAEA,EAAE,GAAIF,EAAEA,EAAGikX,KAAK/jX,EAAE,GAAIgkX,KAAKhkX,EAAE,GACxC,CATqDqtY,CAAoB/5G,GACxE,IAAItzR,EAAIszR,EAAK84E,WAAW/9V,GAAqB,IAAbA,EAAK41W,KAAa,EAAI,GAClDnkX,EAAImtY,GAAc35G,EAAM,GAC5B,MAAO,CAACtzR,EAAEA,EAAGF,EAAEA,EAAE,GAAIikX,KAAKjkX,EAAE,GAAIkkX,KAAKlkX,EAAE,GACxC,CAQA,SAASwtY,GAAiBh6G,GACzB,IAAItzR,EAAIszR,EAAK84E,WAAW,GACpBtsW,EAAIwzR,EAAK84E,WAAW,GACxB,MAAO,CAACpsW,EAAEA,EAAGF,EAAM,IAAJA,EAAUytY,WAAe,MAAJztY,GAAaikX,KAAKjkX,GAAG,GAAIkkX,KAAKlkX,GAAG,GACtE,CA8EA,SAAS0tY,GAAoBl6G,GAC5B,IAAIm6G,EAA2B,EAAjBn6G,EAAKA,EAAKjzR,EAAE,GAG1B,OADAizR,EAAKjzR,GAAK,EACH,CAACotY,EAFQ,EAGjB,CAyCA,SAASC,GAAuBp6G,GAE/B,MAAO,CADIA,EAAK84E,WAAW,GAAU94E,EAAK84E,WAAW,GAEtD,CA4FA,SAASuhC,GAAYr6G,EAAM2wF,GAC1B,IAAI3kX,EAAM,CAACg0R,EAAK84E,WAAW,IAC3B,GAAW,IAAR6X,EAAY,OAAO3kX,EAAI,IACzB,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,GAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAErB,OAAOA,EAAI,IACV,KAAK,EACJA,EAAI,GAAK8vX,GAAU97F,EAAM,GAAK,OAAS,QAC5B,IAAR2wF,IAAY3wF,EAAKjzR,GAAK,GAAG,MAC7B,KAAK,GACL,KAAK,GACJf,EAAI,GAAK+lX,GAAK/xF,EAAKA,EAAKjzR,IACxBizR,EAAKjzR,GAAe,IAAR4jX,EAAc,EAAI,EAAI,MACnC,KAAK,EACJ3wF,EAAKjzR,GAAK,EAAG,MACd,KAAK,EACJf,EAAI,GAAKyoX,GAAWz0F,GAAU,MAC/B,KAAK,EACJh0R,EAAI,GAAKsxX,GAAuBt9F,EAAM,EAAG,CAAC2wF,KAAKA,EAAO,GAAKA,EAAO,EAAI,EAAIA,IAAQ,MACnF,QAAS,MAAM,IAAIrmW,MAAM,cAAgBte,EAAI,IAE9C,OAAOA,CACR,CAGA,SAASsuY,GAAkBt6G,EAAMwgG,EAAKzlX,GAGrC,IAFA,IAAI6wC,EAAQo0O,EAAK84E,WAAyB,IAAb/9V,EAAK41W,KAAc,EAAI,GAChDhf,EAAuB,GACnBnnW,EAAI,EAAGA,GAAKohD,IAASphD,EAAGmnW,EAAI5nW,MAAoB,IAAbgR,EAAK41W,KAAc6D,GAAqB4J,IAAap+F,EAAM,IACtG,OAAO2xE,CACR,CAGA,SAAS4oC,GAAoBv6G,EAAMn1R,EAAQkQ,GAC1C,IAAI6hC,EAAO,EAAG+wH,EAAO,EACL,IAAb5yJ,EAAK41W,MACP/zU,EAAOojP,EAAK84E,WAAW,GACvBnrM,EAAOqyH,EAAK84E,WAAW,KAEvBnrM,EAAO,EAAIqyH,EAAK84E,WAAW,GAC3Bl8T,EAAO,EAAIojP,EAAK84E,WAAW,IAEzB/9V,EAAK41W,MAAQ,GAAK51W,EAAK41W,KAAO,MAAO/zU,EAAmB,KAAR+wH,IAAWA,EAAO,MAErE,IAAI,IAAInjK,EAAI,EAAG4c,EAA0B,GAAI5c,GAAKoyC,IAASx1B,EAAE5c,GAAK,MAAOA,EACxE,IAAI,IAAI+oD,EAAI,EAAGA,GAAKo6G,IAAQp6G,EAAGnsC,EAAE5c,GAAG+oD,GAAK8mV,GAAYr6G,EAAMjlR,EAAK41W,MACjE,OAAOvpW,CACR,CA6EA,SAASozX,GAAgBx6G,EAAMn1R,EAAQkQ,GAEtC,OADAilR,EAAKjzR,GAAK,EACH,CAACitY,GAAiBh6G,GAC1B,CACA,SAASy6G,GAAiBz6G,GAEzB,OADAA,EAAKjzR,GAAK,EACH,EACR,CAUA,SAAS2tY,GAAgB16G,GAExB,OADAA,EAAKjzR,GAAK,EACH,CAAC2vX,GAAY18F,GAA4B,EAArBA,EAAK84E,WAAW,GAC5C,CAEA,IAWI6hC,GAAY,CACf,OACA,MACA,UACA,KACA,SACA,KACA,eACA,KACA,SACA,KACA,KACA,KACA,cACA,KACA,KACA,KACA,YA6CD,IAAIC,GAAW,CACP,EAAa,CAAExvY,EAAE,SAAU0N,EAxPnC,SAAsBknR,EAAMn1R,EAAQkQ,GAEnC,OADAilR,EAAKjzR,IACFgO,GAAqB,IAAbA,EAAK41W,KAAmB,CAAC3wF,EAAK84E,WAAW,EAAG,KAAM,GAGtD,CAFG94E,EAAK84E,WAAW,GAChB94E,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GAExD,GAmPQ,EAAa,CAAEvlX,EAAE,SAAU0N,EAnGhB82W,IAoGX,EAAa,CAAExkX,EAAE,SAAU0N,EAAE4gY,IAC7B,EAAa,CAAEtuY,EAAE,SAAU0N,EAAE4gY,IAC7B,EAAa,CAAEtuY,EAAE,SAAU0N,EAAE4gY,IAC7B,EAAa,CAAEtuY,EAAE,SAAU0N,EAAE4gY,IAC7B,EAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,EAAa,CAAEtuY,EAAE,YAAa0N,EAAE4gY,IAChC,EAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,QAAS0N,EAAE4gY,IAC5B,GAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,GAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,GAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,GAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,GAAa,CAAEtuY,EAAE,YAAa0N,EAAE4gY,IAChC,GAAa,CAAEtuY,EAAE,aAAc0N,EAAE4gY,IACjC,GAAa,CAAEtuY,EAAE,WAAY0N,EAAE4gY,IAC/B,GAAa,CAAEtuY,EAAE,aAAc0N,EAAE4gY,IACjC,GAAa,CAAEtuY,EAAE,SAAU0N,EAzPnC,SAAsBknR,EAAMn1R,EAAQkQ,GAAkB,OAAVilR,EAAKjzR,IAAY8vX,GAA2B78F,EAAMn1R,EAAUkQ,EAAO,GA0PvG,GAAa,CAAE3P,EAAE,WAAY0N,EAlDrC,SAAwBknR,EAAMn1R,EAAQkQ,GAIrC,OAHAilR,EAAKjzR,GAAK,EACVizR,EAAKjzR,GAAK,EACVizR,EAAKjzR,GAAmB,GAAbgO,EAAK41W,KAAY,EAAI,EACzB,CAAC,WACT,GA8CQ,GAAa,CAAEvlX,EAAE,cAAe0N,EA7CxC,SAA2BknR,EAAMn1R,EAAQkQ,GAExC,OADAilR,EAAKjzR,GAAmB,GAAbgO,EAAK41W,KAAY,EAAI,EACzB,CAAC,cACT,GA2CQ,GAAa,CAAEvlX,EAAE,SAAU0N,EAxQnC,SAAsBknR,GAAkB,OAAVA,EAAKjzR,IAAYglX,GAAK/xF,EAAK84E,WAAW,GAAK,GAyQjE,GAAa,CAAE1tW,EAAE,UAAW0N,EAnQpC,SAAuBknR,GAAkB,OAAVA,EAAKjzR,IAAiC,IAArBizR,EAAK84E,WAAW,EAAO,GAoQ/D,GAAa,CAAE1tW,EAAE,SAAU0N,EAvQnC,SAAsBknR,GAAkB,OAAVA,EAAKjzR,IAAYizR,EAAK84E,WAAW,EAAI,GAwQ3D,GAAa,CAAE1tW,EAAE,SAAU0N,EAlQnC,SAAsBknR,GAAkB,OAAVA,EAAKjzR,IAAY0nX,GAAWz0F,EAAU,GAmQ5D,GAAa,CAAE50R,EAAE,WAAY0N,EAhZrC,SAAwBknR,EAAMn1R,EAAQkQ,GACrC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAEtC,OADAizR,EAAKjzR,GAAkB,GAAbgO,EAAK41W,KAAY,EAAiB,IAAb51W,EAAK41W,KAAa,GAAK,EAC/C,CAAC9oX,EACT,GA6YQ,GAAa,CAAEuD,EAAE,UAAW0N,EA9SpC,SAAuBknR,EAAMn1R,EAAQkQ,GAEpC,IAAIlT,GAAuB,GAAfm4R,EAAKA,EAAKjzR,KAAY,EAClCizR,EAAKjzR,GAAK,EACV,IAAI8tY,EAAQ76G,EAAK84E,WAAW/9V,GAAQA,EAAK41W,MAAQ,EAAI,EAAI,GACzD,MAAO,CAACmqB,GAASD,GAAQE,GAAKF,GAAQhzY,EACvC,GAySQ,GAAa,CAAEuD,EAAE,aAAc0N,EAvSvC,SAA0BknR,EAAMn1R,EAAQkQ,GACvC,IAAIlT,EAAOm4R,EAAKA,EAAKjzR,KACjBiuY,EAAUh7G,EAAK84E,WAAW,GAAIhrR,EAAM/yE,GAAQA,EAAK41W,MAAQ,EAAI,CAAU,IAAR9oX,GAAgB,EAAI,EAAIm4R,EAAK84E,WAAW,IAI5G,SAAkB94E,GACjB,MAAO,CAACA,EAAKA,EAAKjzR,EAAE,IAAI,EAAwB,MAArBizR,EAAK84E,WAAW,GAC5C,CANiHmiC,CAASj7G,GACzH,MAAO,CAACg7G,GAAqB,IAAXltT,EAAI,GAAWitT,GAAOG,IAAOptT,EAAI,IACpD,GAoSQ,GAAa,CAAE1iF,EAAE,UAAW0N,EA1MpC,SAAuBknR,EAAMn1R,EAAQkQ,GACpC,IAAIlT,EAAQm4R,EAAK84E,WAAW,KAAO,EAAK,EACpCtpT,GAAMz0C,GAASA,EAAK41W,MAAQ,EAAM,EAAI,EACtCwqB,EAAYn7G,EAAK84E,WAAWtpT,GAChC,OAAOz0C,EAAK41W,MACX,KAAK,EAAG3wF,EAAKjzR,GAAK,EAAG,MACrB,KAAK,EAAG,KAAK,EAAGizR,EAAKjzR,GAAK,EAAG,MAC7B,KAAK,EAAGizR,EAAKjzR,GAAK,GAEnB,MAAO,CAAClF,EAAM,EAAGszY,EAClB,GAiMQ,GAAa,CAAE/vY,EAAE,SAAU0N,EA7UnC,SAAsBknR,EAAMn1R,EAAQkQ,GAEnC,IAAIlT,GAAuB,GAAfm4R,EAAKA,EAAKjzR,KAAY,EAGlC,OAFAizR,EAAKjzR,GAAK,EAEH,CAAClF,EADEiyY,GAAc95G,EAAM,EAAGjlR,GAElC,GAwUQ,GAAa,CAAE3P,EAAE,UAAW0N,EAncpC,SAAuBknR,EAAMn1R,EAAQkQ,GAGpC,MAAO,EAFsB,GAAjBilR,EAAKA,EAAKjzR,OAAgB,EAC3B6sY,GAAe55G,EAAMjlR,EAAK41W,MAAQ,GAAK51W,EAAK41W,KAAmB51W,GAE3E,GAgcQ,GAAa,CAAE3P,EAAE,aAAc0N,EA/KvC,SAA0BknR,EAAMn1R,EAAQkQ,GACvC,IAAIlT,EAAQm4R,EAAK84E,WAAW,KAAO,EAAK,EAGxC,OAFA94E,EAAKjzR,GAAMgO,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,EAEjC,CAAC9oX,EADEm4R,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GAExD,GA2KQ,GAAa,CAAEvlX,EAAE,YAAa0N,EA1IhB82W,IA2Id,GAAa,CAAExkX,EAAE,cAAe0N,EAzIhB82W,IA0IhB,GAAa,CAAExkX,EAAE,aAAc0N,EA1KvC,SAA0BknR,EAAMn1R,EAAQkQ,GAGvC,MAAO,CAFKilR,EAAK84E,WAAW,KAAO,EAAK,EAC9B94E,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GAExD,GAuKQ,GAAa,CAAEvlX,EAAE,YAAa0N,EAnKtC,SAAyBknR,EAAMn1R,EAAQkQ,GACtC,IAAIlT,EAAQm4R,EAAK84E,WAAW,KAAO,EAAK,EAIxC,OAHA94E,EAAKjzR,GAAK,EACPgO,EAAK41W,KAAO,GAAG3wF,EAAKjzR,IACP,IAAbgO,EAAK41W,OAAY3wF,EAAKjzR,GAAK,GACvB,CAAClF,EACT,GA8JQ,GAAa,CAAEuD,EAAE,aAAc0N,EArbvC,SAA0BknR,EAAMn1R,EAAQkQ,GACvC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAEtC,OADAizR,EAAKjzR,GAAKgO,GAASA,EAAK41W,KAAO,EAAK,GAAM51W,EAAK41W,KAAO,EAAI,EAAI,EACvD,CAAC9oX,EACT,GAkbQ,GAAa,CAAEuD,EAAE,UAAW0N,EA5UpC,SAAuBknR,EAAMn1R,EAAQkQ,GACpC,IAAIlT,GAAuB,GAAfm4R,EAAKA,EAAKjzR,KAAY,EAClCizR,EAAKjzR,GAAK,EACV,IAAImiX,EAvJL,SAA0BlvF,EAAMn1R,EAAQkQ,GACvC,IAAI41W,EAAO51W,GAAQA,EAAK41W,KAAO51W,EAAK41W,KAAO,EAC3C,GAAGA,GAAQ,GAAKA,GAAQ,EAAG,OAS5B,SAAgC3wF,GAC/B,IAAIkP,EAAKlP,EAAK84E,WAAW,GACrBtsW,EAAIwzR,EAAK84E,WAAW,GACpB4X,GAAa,MAALxhF,IAAgB,GAAIuhF,GAAa,MAALvhF,IAAgB,GAIxD,OAHAA,GAAM,MACK,GAARwhF,GAAaxhF,GAAM,OAAQA,GAAU,OAC7B,GAARuhF,GAAajkX,GAAK,MAAMA,GAAQ,KAC5B,CAACE,EAAEwiS,EAAG1iS,EAAEA,EAAEikX,KAAKA,EAAKC,KAAKA,EACjC,CAjBmC0qB,CAAuBp7G,GACzD,IAAItzR,EAAIszR,EAAK84E,WAAW6X,GAAQ,GAAK,EAAI,GACrCnhF,EAAKxP,EAAK84E,WAAW,GACrB2X,GAAa,MAALjhF,IAAgB,GAAIkhF,GAAa,MAALlhF,IAAgB,GAExD,GADAA,GAAM,MACK,GAARkhF,EAAW,KAAMhkX,EAAI,QAASA,GAAK,QACtC,GAAW,GAAR+jX,EAAW,KAAMjhF,EAAK,MAAQA,GAAU,MAC3C,MAAO,CAAC9iS,EAAEA,EAAEF,EAAEgjS,EAAGihF,KAAKA,EAAKC,KAAKA,EACjC,CA6IW2qB,CAAiBr7G,EAAM,EAAGjlR,GACpC,MAAO,CAAClT,EAAMqnX,EACf,GAwUQ,GAAa,CAAE9jX,EAAE,WAAY0N,EAparC,SAAwBknR,EAAMn1R,EAAQkQ,GACrC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAClCiqR,EA5FL,SAA2BgJ,EAAMn1R,EAAQkQ,GACxC,GAAGA,EAAK41W,KAAO,EAAG,OAAOkpB,GAAqB75G,GAC9C,IAAItzR,EAAEszR,EAAK84E,WAAwB,IAAb/9V,EAAK41W,KAAa,EAAI,GAAIvjT,EAAE4yN,EAAK84E,WAAwB,IAAb/9V,EAAK41W,KAAa,EAAI,GACpFnkX,EAAEmtY,GAAc35G,EAAM,GACtBzzN,EAAEotU,GAAc35G,EAAM,GAC1B,MAAO,CAAElzR,EAAE,CAACJ,EAAEA,EAAGF,EAAEA,EAAE,GAAIikX,KAAKjkX,EAAE,GAAIkkX,KAAKlkX,EAAE,IAAKsc,EAAE,CAACpc,EAAE0gE,EAAG5gE,EAAE+/D,EAAE,GAAIkkT,KAAKlkT,EAAE,GAAImkT,KAAKnkT,EAAE,IACnF,CAsFY+uU,CAAkBt7G,EAAMn1R,EAAYkQ,GAC/C,MAAO,CAAClT,EAAMmvR,EACf,GAiaQ,GAAa,CAAE5rR,EAAE,cAAe0N,EA5DxC,SAA2BknR,GAG1B,MAAO,CAFKA,EAAK84E,WAAW,KAAO,EAAK,EAC9B94E,EAAK84E,WAAW,GAE3B,GAyDQ,GAAa,CAAE1tW,EAAE,eAAgB0N,EAxDzC,SAA4BknR,GAG3B,MAAO,CAFKA,EAAK84E,WAAW,KAAO,EAAK,EAC9B94E,EAAK84E,WAAW,GAE3B,GAqDQ,GAAa,CAAE1tW,EAAE,WAAY0N,EA1MrC,SAAwBknR,EAAMn1R,EAAQkQ,GACrC,OAAgB,GAAbA,EAAK41W,KAMT,SAA8B3wF,GAC7B,IAAIn4R,EAAQm4R,EAAK84E,WAAW,KAAO,EAAK,EACpCyiC,EAAOv7G,EAAK84E,WAAW,EAAG,KAC9B94E,EAAKjzR,GAAK,EACV,IAAIouY,EAAYn7G,EAAK84E,WAAW,GAEhC,OADA94E,EAAKjzR,GAAK,GACH,CAAClF,EAAM0zY,EAAMJ,EACrB,CAb2BK,CAAqBx7G,GAIxC,CAHKA,EAAK84E,WAAW,KAAO,EAAK,EAC7B94E,EAAK84E,WAAW,GACX94E,EAAK84E,WAAW,GAEjC,GAqMQ,GAAa,CAAE1tW,EAAE,WAAY0N,EAzUrC,SAAwBknR,EAAMn1R,EAAQkQ,GACrC,IAAIlT,GAAuB,GAAfm4R,EAAKA,EAAKjzR,KAAY,EAClCizR,EAAKjzR,GAAK,EACV,IAAIwuY,EAAOv7G,EAAK84E,WAAW,GAG3B,OAFG/9V,GAAqB,GAAbA,EAAK41W,OAAW3wF,EAAKjzR,GAAK,IAE9B,CAAClF,EAAM0zY,EADJzB,GAAc95G,EAAM,EAAGjlR,GAElC,GAmUQ,GAAa,CAAE3P,EAAE,YAAa0N,EAzctC,SAAyBknR,EAAMn1R,EAAQkQ,GACtC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAClCwuY,EAAOv7G,EAAK84E,WAAW,EAAG,KAE9B,GAAG/9V,EAAM,OAAOA,EAAK41W,MACpB,KAAK,EAAG3wF,EAAKjzR,GAAK,GAAQ,EAAG,MAC7B,KAAK,GAAQ,GAGd,MAAO,CAAClF,EAAM0zY,EADH3B,GAAe55G,EAAMxwO,EAAGz0C,GAEpC,GAgcQ,GAAa,CAAE3P,EAAE,cAAe0N,EAnKxC,SAA2BknR,EAAMn1R,EAAQkQ,GACxC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAClCwuY,EAAOv7G,EAAK84E,WAAW,GACvBtpT,EAAI,EACR,GAAGz0C,EAAM,OAAOA,EAAK41W,MACpB,KAAK,EAAGnhU,EAAI,GAAI,MAChB,KAAK,GAAIA,EAAI,EAGd,OADAwwO,EAAKjzR,GAAKyiD,EACH,CAAC3nD,EAAM0zY,EACf,GA0JQ,GAAa,CAAEnwY,EAAE,eAAgB0N,EAxbzC,SAA4BknR,EAAMn1R,EAAQkQ,GACzC,IAAIlT,GAAyB,GAAjBm4R,EAAKA,EAAKjzR,OAAgB,EAClCwuY,EAAOv7G,EAAK84E,WAAW,GACvBtpT,EAAI,EACR,GAAGz0C,EAAM,OAAOA,EAAK41W,MACpB,KAAK,EAAG3wF,EAAKjzR,GAAK,GAAIyiD,EAAI,EAAG,MAC7B,KAAK,GAAIA,EAAI,GAGd,OADAwwO,EAAKjzR,GAAKyiD,EACH,CAAC3nD,EAAM0zY,EACf,GA+aQ,IAAa,CAAC,GAGlBE,GAAW,CACP,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,IAG3CC,GAAQ,CACJ,EAAa,CAAEtwY,EAAE,YAAa0N,EAAE4hY,IAChC,EAAa,CAAEtvY,EAAE,WAAY0N,EApJhB0hY,IAqJb,EAAa,CAAEpvY,EAAE,YAAa0N,EAxKhB0hY,IAyKd,EAAa,CAAEpvY,EAAE,YAAa0N,EApJhB0hY,IAqJd,EAAa,CAAEpvY,EAAE,aAAc0N,EApKhB0hY,IAqKf,GAAa,CAAEpvY,EAAE,gBAAiB0N,EA9JhB0hY,IA+JlB,GAAa,CAAEpvY,EAAE,iBAAkB0N,EA3JhB2hY,IA4JnB,GAAa,CAAErvY,EAAE,aAAc0N,EA3KhB2hY,IA4Kf,GAAa,CAAErvY,EAAE,cAAe0N,EA1KhB2hY,IA2KhB,GAAa,CAAErvY,EAAE,mBAAoB0N,EAhKhB4hY,IAiKrB,GAAa,CAAEtvY,EAAE,UAAW0N,EArIpC,SAAuBknR,GACtBA,EAAKjzR,GAAK,EACV,IAAIwuY,EAAOv7G,EAAK84E,WAAW,GACvBD,EAAQ74E,EAAK84E,WAAW,GACxB3tM,EAAM60H,EAAK84E,WAAW,GACtBtsW,EAAIwzR,EAAK84E,WAAW,GACpBvsS,EAAIyzN,EAAK84E,WAAW,GAExB,MAAO,CAACyiC,KAAMA,EAAMI,QAAe,EAAN9iC,EAAYnmI,GADhCioK,GAAW9hC,GAAS,EAAK,IACc1tM,IAAIA,EAAK3+J,EAAEA,EAAG+/D,EAAEA,EACjE,GA6HQ,GAAa,CAAEnhE,EAAE,YAAa0N,EA3HtC,SAAyBknR,GAExB,OADAA,EAAKjzR,GAAK,EACH,CAACizR,EAAK84E,WAAW,GACzB,GAyHQ,IAAa,CAAC,GAElB8iC,GAAQ,CACJ,EAAa,CAAExwY,EAAE,cAAe0N,EArGxC,SAA2BknR,GAE1B,OADAA,EAAKjzR,GAAK,EACH,CAAC,EAAG,EACZ,GAmGQ,EAAa,CAAE3B,EAAE,cAAe0N,EApaxC,SAA2BknR,EAAMn1R,EAAQkQ,GACxC,IAAIo/X,EAA4B,IAAjBn6G,EAAKA,EAAKjzR,EAAE,GAAa,EAAI,EAE5C,OADAizR,EAAKjzR,GAAKgO,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,EAChC,CAACwpB,EACT,GAiaQ,EAAa,CAAE/uY,EAAE,YAAa0N,EAnbtC,SAAyBknR,EAAMn1R,EAAQkQ,GACtC,IAAI8gY,EAA0B,IAAjB77G,EAAKA,EAAKjzR,EAAE,GAAa,EAAI,EAE1C,OADAizR,EAAKjzR,GAAK,EACH,CAAC8uY,EAAO77G,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GAC7D,GAgbQ,EAAa,CAAEvlX,EAAE,gBAAiB0N,EArc1C,SAA6BknR,EAAMn1R,EAAQkQ,GAC1CilR,EAAKjzR,GAAI,EAIT,IAHA,IAAImkD,EAAS8uO,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GACtDvpW,EAAsB,GAElB5c,EAAI,EAAGA,GAAK0mD,IAAU1mD,EAAG4c,EAAErd,KAAKi2R,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,IACrF,OAAOvpW,CACR,GA+bQ,EAAa,CAAEhc,EAAE,cAAe0N,EA5bxC,SAA2BknR,EAAMn1R,EAAQkQ,GACxC,IAAI+gY,EAA4B,IAAjB97G,EAAKA,EAAKjzR,EAAE,GAAa,EAAI,EAE5C,OADAizR,EAAKjzR,GAAK,EACH,CAAC+uY,EAAS97G,EAAK84E,WAAW/9V,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,GAC/D,GAybQ,GAAa,CAAEvlX,EAAE,aAAc0N,EAhWvC,SAA0BknR,EAAMn1R,EAAQkQ,GACvCilR,EAAKjzR,GAAKgO,GAAqB,GAAbA,EAAK41W,KAAY,EAAI,CACxC,GA+VQ,GAAa,CAAEvlX,EAAE,gBAAiB0N,EAAEohY,IACpC,GAAa,CAAE9uY,EAAE,gBAAiB0N,EAAEohY,IACpC,GAAa,CAAE9uY,EAAE,eAAgB0N,EA9ZzC,SAA4BknR,GAE3B,OADAA,EAAK84E,WAAW,GACTshC,GAAuBp6G,EAC/B,GA4ZQ,GAAa,CAAE50R,EAAE,mBAAoB0N,EAzZ7C,SAAgCknR,GAE/B,OADAA,EAAK84E,WAAW,GACTshC,GAAuBp6G,EAC/B,GAuZQ,IAAa,CAAE50R,EAAE,iBAAkB0N,EApb3C,SAA8BknR,GAC7B,IAAI67G,EAA0B,IAAjB77G,EAAKA,EAAKjzR,EAAE,GAAa,EAAI,EAE1C,OADAizR,EAAKjzR,GAAK,EACH,CAAC8uY,EAAO77G,EAAK84E,WAAW,GAChC,GAibQ,IAAa,CAAC,GAItB,SAASgoB,GAAe9gG,EAAMn1R,EAAQ81X,EAAM5lX,GAC3C,GAAGA,EAAK41W,KAAO,EAAG,OAAOf,GAAU5vF,EAAMn1R,GAGzC,IAFA,IAAIJ,EAASu1R,EAAKjzR,EAAIlC,EAClBuc,EAAI,GACA5c,EAAI,EAAGA,IAAMm2X,EAAK91X,SAAUL,EACnC,OAAOm2X,EAAKn2X,GAAG,IACd,IAAK,WACJm2X,EAAKn2X,GAAG,GAAK+vY,GAAoBv6G,EAAM,EAAGjlR,GAC1CqM,EAAErd,KAAK42X,EAAKn2X,GAAG,IACf,MACD,IAAK,aACJm2X,EAAKn2X,GAAG,GAAK8vY,GAAkBt6G,EAAM2gG,EAAKn2X,GAAG,GAAIuQ,GACjDqM,EAAErd,KAAK42X,EAAKn2X,GAAG,IACf,MACD,IAAK,SACDuQ,GAAqB,IAAbA,EAAK41W,OACfgQ,EAAKn2X,GAAG,GAAG,GAAKw1R,EAAK84E,WAAW,GAChC1xV,EAAErd,KAAK42X,EAAKn2X,GAAG,KACd,MACH,IAAK,UACL,IAAK,iBACL,IAAK,aACL,IAAK,cACJ,KAAM,eAAiBm2X,EAAKn2X,GAAG,GAQlC,OADc,KAHdK,EAASJ,EAASu1R,EAAKjzR,IAGNqa,EAAErd,KAAK6lX,GAAU5vF,EAAMn1R,IACjCuc,CACR,CAGA,SAASy5W,GAAW7gG,EAAMn1R,EAAQkQ,GAGjC,IAFA,IACIqyD,EAAG14C,EADHjqB,EAASu1R,EAAKjzR,EAAIlC,EACXkxY,EAAO,GACZtxY,GAAUu1R,EAAKjzR,GACpBlC,EAASJ,EAASu1R,EAAKjzR,EACvB2nB,EAAKsrQ,EAAKA,EAAKjzR,GACfqgE,EAAIwtU,GAASlmX,IAAOkmX,GAASa,GAAS/mX,IAC5B,KAAPA,GAAsB,KAAPA,IAAa04C,GAAY,KAAP14C,EAAcgnX,GAAQE,IAAO57G,EAAKA,EAAKjzR,EAAI,KAC3EqgE,GAAMA,EAAEt0D,EACLijY,EAAKhyY,KAAK,CAACqjE,EAAEhiE,EAAGgiE,EAAEt0D,EAAEknR,EAAMn1R,EAAQkQ,KADV60W,GAAU5vF,EAAMn1R,GAGhD,OAAOkxY,CACR,CAEA,SAASC,GAAgBljY,GAExB,IADA,IAAIsO,EAAsB,GAClB5c,EAAI,EAAGA,EAAIsO,EAAEjO,SAAUL,EAAG,CAEjC,IADA,IAAIupC,EAAIj7B,EAAEtO,GAAIkC,EAAsB,GAC5B6mD,EAAI,EAAGA,EAAIxf,EAAElpC,SAAU0oD,EAAG,CACjC,IAAI7pC,EAAIqqB,EAAEwf,GACV,GAAG7pC,EAAG,GAEA,IAFOA,EAAE,GAIbhd,EAAE3C,KAAK,IAAM2f,EAAE,GAAG0J,QAAQ,KAAK,MAAQ,UAC/B1mB,EAAE3C,KAAK2f,EAAE,SACZhd,EAAE3C,KAAK,GACf,CACAqd,EAAErd,KAAK2C,EAAErE,KAAK,KACf,CACA,OAAO+e,EAAE/e,KAAK,IACf,CAGA,IAAI4zY,GAAW,CACdC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPC,SAAU,IACVC,OAAQ,KAST,SAASC,GAAaC,EAAUxB,EAAiBxgY,GAChD,IAAIgiY,EAAU,MAAO,cACrB,GAAGhiY,EAAK41W,KAAO,KAAOosB,EAASC,MAAQD,EAASC,IAAIzB,IAAQ,OAAOwB,EAAS5qB,WAAWopB,GACvF,IAAIwB,EAASC,IAAK,MAAO,cACzB,IAAIA,EAAMD,EAASC,IAAIzB,GACvB,GAAGxgY,EAAK41W,KAAO,EAGd,OAFG4qB,EAAO,MAAOA,GAAO,OACrBA,EAAO,IAAGA,GAAQA,GACN,GAARA,EAAY,GAAKwB,EAASC,IAAIzB,EAAO,GAE7C,IAAIyB,EAAK,MAAO,cAChB,IAAI51X,EAAI,GACR,GAAGrM,EAAK41W,KAAO,EAAG,OAAOosB,EAASC,EAAI,IAAI,IACzC,KAAK,IAEJ,OADA51X,GAAe,GAAX41X,EAAI,GAAW,OAASD,EAAS5qB,WAAW6qB,EAAI,IAC7CA,EAAI,IAAMA,EAAI,GAAK51X,EAAIA,EAAI,IAAM21X,EAAS5qB,WAAW6qB,EAAI,IACjE,KAAK,IACJ,OAAe,MAAZjiY,EAAKkiY,IAAoBF,EAAS5qB,WAAWp3W,EAAKkiY,KAC9C,cAAgBF,EAASC,EAAI,IAAI,GAGzC,QAAS,MAAO,aAAeD,EAASC,EAAI,IAAI,GAEjD,OAAOD,EAASC,EAAI,IAAI,GAAG,IAC1B,KAAK,KAEJ,OADA51X,GAAe,GAAX41X,EAAI,GAAW,OAAUD,EAAS5qB,WAAW6qB,EAAI,KAAO,cACrDA,EAAI,IAAMA,EAAI,GAAK51X,EAAIA,EAAI,IAAM21X,EAAS5qB,WAAW6qB,EAAI,IACjE,KAAK,MAAQ,OAAOD,EAASC,EAAI,IAAIhxX,MAAM,GAAGhiB,KAAI,SAASwX,GAAQ,OAAOA,EAAK4+W,IAAM,IAAG/3X,KAAK,MAC7F,QACC,OAAI00Y,EAASC,EAAI,IAAI,GAAG,IACxB51X,GAAe,GAAX41X,EAAI,GAAW,OAAUD,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAAO,cACxDA,EAAI,IAAMA,EAAI,GAAK51X,EAAIA,EAAI,IAAM21X,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAFhC,cAItC,CACA,SAASE,GAASH,EAAUxB,EAAiBxgY,GAC5C,IAAIoiY,EAAUL,GAAaC,EAAUxB,EAAMxgY,GAC3C,MAAkB,QAAXoiY,EAAoBA,EAzC5B,SAAkCC,EAAkBriY,GACnD,IAAIqiY,KAAWriY,GAAQA,EAAK41W,MAAQ,GAAK51W,EAAK41W,MAAQ,GAAI,MAAM,IAAIrmW,MAAM,oBAC1E,MAAI,kCAAkCi1B,KAAK69V,GAAe,IAAMA,EAAQ,IACjEA,CACR,CAqCsCC,CAAyBF,EAASpiY,EACxE,CACA,SAASuiY,GAAkB7W,EAAuB75V,EAAO4jF,EAAcusR,EAAUhiY,GAChF,IAEkC6zV,EAAIC,EAAgBriW,EAAsCE,EAFxFikX,EAAQ51W,GAAQA,EAAK41W,MAAS,EAC9BgC,EAAqC,CAAC7lX,EAAE,CAACN,EAAE,EAAGE,EAAE,GAAGoc,EAAE,CAACtc,EAAE,EAAGE,EAAE,IAC7D6wY,EAA0B,GAA2ChC,EAAK,EAAGiC,EAAQ,EAAMJ,EAAM,GACrG,IAAI3W,EAAQ,KAAOA,EAAQ,GAAG,GAAI,MAAO,GAEzC,IADA,IAAIgX,GAAW,EAAGrjE,EAAK,GACfiI,EAAK,EAAGq7D,EAAQjX,EAAQ,GAAG57X,OAAQw3U,EAAKq7D,IAASr7D,EAAI,CAC5D,IAAIvpU,EAAI2tX,EAAQ,GAAGpkD,GACnB,OAAOvpU,EAAE,IACR,IAAK,YACJykY,EAAMxzY,KAAK,IAAMwzY,EAAMzxX,OAAQ,MAChC,IAAK,WACJyxX,EAAMxzY,KAAK,IAAMwzY,EAAMzxX,OAAQ,MAChC,IAAK,aACJyxX,EAAMxzY,KAAKwzY,EAAMzxX,MAAQ,KAAM,MAEhC,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,SAEJ,GADA8iV,EAAK2uC,EAAMzxX,MAAO+iV,EAAK0uC,EAAMzxX,MAC1B2xX,GAAW,EAAG,CAChB,OAAOhX,EAAQ,GAAGgX,GAAS,GAAG,IAC7B,KAAK,EAEJrjE,EAAKv2T,GAAK,IAAK4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAK,MAC5C,KAAK,EAEJrjE,EAAKv2T,GAAK,KAAM4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAK,MAC7C,QAGC,GAFArjE,EAAK,GAEFr/T,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,+BAAiCm8W,EAAQ,GAAGgX,GAAS,GAAG,IAEvF5uC,GAAUz0B,EACVqjE,GAAW,CACZ,CACAF,EAAMxzY,KAAK8kW,EAAGotC,GAASnjY,EAAE,IAAI81V,GAC7B,MAED,IAAK,WACJA,EAAK2uC,EAAMzxX,MAAO+iV,EAAK0uC,EAAMzxX,MAC7ByxX,EAAMxzY,KAAK8kW,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK2uC,EAAMzxX,MAAO+iV,EAAK0uC,EAAMzxX,MAC7ByxX,EAAMxzY,KAAK8kW,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK2uC,EAAMzxX,MAAO+iV,EAAK0uC,EAAMzxX,MAC7ByxX,EAAMxzY,KAAK8kW,EAAG,IAAID,GAClB,MAED,IAAK,gBAEL,IAAK,cAEL,IAAK,YAEL,IAAK,iBA2DL,IAAK,gBACL,IAAK,cA+FL,IAAK,aASL,IAAK,SAGL,IAAK,YAkBL,IAAK,cACL,IAAK,eACL,IAAK,cACL,IAAK,WACL,IAAK,cAGL,IAAK,aAEL,IAAK,cACJ,MA/LD,IAAK,SACkBpiW,EAAIgkX,GAAgB13W,EAAE,GAAG,GAAa65W,EAAQ53W,GACpEwiY,EAAMxzY,KAAK8mX,GAAgBrkX,EAAGmkX,IAC9B,MACD,IAAK,UACkBnkX,EAAIgkH,EAAOggQ,GAAgB13W,EAAE,GAAG,GAAa03G,EAAMz1G,GAASjC,EAAE,GAAG,GACvFykY,EAAMxzY,KAAK8mX,GAAgBrkX,EAAGmkX,IAC9B,MACD,IAAK,WACkB4qB,EAAoBziY,EAAE,GAAG,GAAWtM,EAAIgkX,GAAgB13W,EAAE,GAAG,GAAa65W,EAAQ53W,GACxGqiY,EAAQF,GAASH,EAAUxB,EAAMxgY,GAEjCwiY,EAAMxzY,KAAKqzY,EAAQ,IAAMvsB,GAAgBrkX,EAAGmkX,IAC5C,MAED,IAAK,UACL,IAAK,aAEJ,IAAIub,EAAmBpzX,EAAE,GAAG,GAAagjD,EAAmBhjD,EAAE,GAAG,GAC7DozX,IAAMA,EAAO,GAEjB,IAAIp/W,EAAe,IADnBo/W,GAAQ,KACe,GAAKqR,EAAMvxX,OAAOkgX,GACzCqR,EAAM1yY,QAAUqhY,EACJ,SAATpwU,IAAiBA,EAAOhvC,EAAK4V,SAChC66W,EAAMxzY,KAAK+xD,EAAO,IAAMhvC,EAAKzkB,KAAK,KAAO,KACzC,MAED,IAAK,UACJk1Y,EAAMxzY,KAAK+O,EAAE,GAAK,OAAS,SAAU,MACtC,IAAK,SAOL,IAAK,SACJykY,EAAMxzY,KAAkB+O,EAAE,IAAY,MANvC,IAAK,SACJykY,EAAMxzY,KAAK8B,OAAOiN,EAAE,KAAM,MAC3B,IAAK,SAEJykY,EAAMxzY,KAAK,IAAM+O,EAAE,GAAGsa,QAAQ,KAAM,MAAQ,KAAM,MAGnD,IAAK,WACkB1mB,EAAIkkX,GAAgB93W,EAAE,GAAG,GAAI03G,EAAO,CAAC1jH,EAAE0jH,GAAQmiQ,EAAQ53W,GAC7EwiY,EAAMxzY,KAAKinX,GAAkBtkX,EAAYqO,IACzC,MACD,IAAK,UACkBrO,EAAIkkX,GAAgB93W,EAAE,GAAG,GAAI65W,EAAQ53W,GAC3DwiY,EAAMxzY,KAAKinX,GAAkBtkX,EAAYqO,IACzC,MACD,IAAK,YACkBwgY,EAAoBziY,EAAE,GAAG,GAAWpM,EAAIoM,EAAE,GAAG,GACnEskY,EAAQF,GAASH,EAAUxB,EAAMxgY,GACjCwiY,EAAMxzY,KAAKqzY,EAAQ,IAAMpsB,GAAkBtkX,EAAYqO,IACvD,MACD,IAAK,aACJwiY,EAAMxzY,KAAK,OAASwzY,EAAMzxX,MAAQ,KAClC,MAMD,IAAK,UAEJ0xX,EAAW1kY,EAAE,GAAG,GAChB,IAAI6kY,GAAOZ,EAAS/uY,OAAO,IAAIwvY,EAAQ,KAAOT,EAAS,IAAI,IAAIS,GAC3Dh8X,EAAOm8X,EAAMA,EAAIvd,KAAO,cAAgBv0X,OAAO2xY,GAEhDh8X,GAA2B,UAAnBA,EAAKwK,MAAM,EAAE,KAAmBjR,EAAK6iY,OAAMp8X,EAAOA,EAAKwK,MAAM,IACxEuxX,EAAMxzY,KAAKyX,GACX,MAED,IAAK,WAEJ,IAA6Eq8X,EAAzEC,EAAsBhlY,EAAE,GAAG,GAE/B,GAF4C0kY,EAAW1kY,EAAE,GAAG,KAEzDiC,EAAK41W,MAAQ,GAGT,CACN,IAAIvpW,EAAI,GAQR,GAP0C,SAArC21X,EAASe,IAAU,IAAI,IAAI,IAAI,KACW,QAArCf,EAASe,IAAU,IAAI,IAAI,IAAI,GACrCf,EAASe,GAASN,IAAYT,EAASe,GAASN,GAAS/c,KAAO,IAClEr5W,EAAI21X,EAAS5qB,WAAW4qB,EAASe,GAASN,GAAS/c,KAAK,GAAK,KAG1Dr5W,EAAI21X,EAAS5qB,WAAWqrB,EAAQ,GAAI,KACtCT,EAASe,IAAYf,EAASe,GAASN,GAAUp2X,GAAK21X,EAASe,GAASN,GAASpd,UAC/E,GAAG2c,EAAS,IAAMA,EAAS,GAAGS,GAAUp2X,GAAK21X,EAAS,GAAGS,GAASpd,SAClE,CACJ,IAAI2d,GAAYjB,GAAaC,EAAUe,EAAS/iY,IAAO,IAAIwS,MAAM,MAC9DwwX,EAASP,EAAU,GAAIp2X,EAAI22X,EAASP,EAAU,GAC5Cp2X,GAAK,aACX,CACAm2X,EAAMxzY,KAAKqd,GACX,KACD,CApBI02X,EAAU,IAAGA,GAAWA,GACxBf,EAASe,KAAUD,EAAad,EAASe,GAASN,IAoBlDK,IAAYA,EAAa,CAACzd,KAAM,gBACpCmd,EAAMxzY,KAAK8zY,EAAWzd,MACtB,MAED,IAAK,WACJ,IAAI9lD,EAAK,IAAKH,EAAK,IACnB,GAAGsjE,GAAW,EAAG,CAEhB,OADArjE,EAAK,GACEqsD,EAAQ,GAAGgX,GAAS,GAAG,IAE7B,KAAK,EAAGnjE,EAAKz2T,GAAK,IAAK4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAMnjE,EAAI,MAExD,KAAK,EAAGA,EAAKz2T,GAAK,KAAM4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAMnjE,EAAI,MAEzD,KAAK,EAAGH,EAAKt2T,GAAK,IAAK4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAMtjE,EAAI,MAExD,KAAK,EAAGA,EAAKt2T,GAAK,KAAM4iX,EAAQ,GAAGgX,GAAS,GAAG,IAAMtjE,EAAI,MACzD,QAEC,GAAGp/T,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,+BAAiCm8W,EAAQ,GAAGgX,GAAS,GAAG,IAEvFA,GAAW,CACZ,CACAF,EAAMxzY,KAAKuwU,EAAKijE,EAAMzxX,MAAQquT,GAAK,MAEpC,IAAK,YAGL,IAAK,cA+CL,IAAK,aAGL,IAAK,eACJojE,EAAMxzY,KAAK,SAAU,MAhDtB,IAAK,SACJyC,EAAI,CAACA,EAAGsM,EAAE,GAAG,GAAYpM,EAAGoM,EAAE,GAAG,IACjC,IAAI3L,EAAK,CAACX,EAAGgkH,EAAKhkH,EAAGE,EAAE8jH,EAAK9jH,GAC5B,GAAGqwY,EAASiB,QAAQltB,GAAYtkX,IAAK,CACpC,IAAIyxY,EAAWlB,EAASiB,QAAQltB,GAAYtkX,IAC5C+wY,EAAMxzY,KAAKuzY,GAAkBW,EAAStrB,EAAQxlX,EAAG4vY,EAAUhiY,GAC5D,KAAO,CACN,IAAImjY,GAAM,EACV,IAAItvC,EAAG,EAAEA,GAAImuC,EAASoB,OAAOtzY,SAAU+jW,EAGtC,GADAC,EAAKkuC,EAASoB,OAAOvvC,KAClBpiW,EAAEA,EAAIqiW,EAAG,GAAG/hW,EAAEN,GAAKA,EAAEA,EAAIqiW,EAAG,GAAG/lV,EAAEtc,MACjCA,EAAEE,EAAImiW,EAAG,GAAG/hW,EAAEJ,GAAKF,EAAEE,EAAImiW,EAAG,GAAG/lV,EAAEpc,GAApC,CACA6wY,EAAMxzY,KAAKuzY,GAAkBzuC,EAAG,GAAI8jB,EAAQxlX,EAAG4vY,EAAUhiY,IACzDmjY,GAAM,EACN,KAH+C,CAK5CA,GAAKX,EAAMxzY,KAAkB+O,EAAE,GACpC,CACA,MAED,IAAK,WACJykY,EAAMxzY,KAAK,IAAMiyY,GAAuBljY,EAAE,IAAkB,KAC5D,MAMD,IAAK,eACL,IAAK,mBACJ2kY,EAAUp7D,EACV,MAQD,IAAK,aACJk7D,EAAMxzY,KAAK,IACX,MAQD,IAAK,UAEJwzY,EAAMxzY,KAAK,QAAU+O,EAAE,GAAGqyJ,IAAM,KAAOryJ,EAAE,GAAG45N,GAAK,KACjD,MAcD,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,YACJ,MAAM,IAAIpoN,MAAM,oBAIjB,QAAS,MAAM,IAAIA,MAAM,+BAAiCze,OAAOiN,IAGlE,GAAgB,GAAbiC,EAAK41W,MAAc8sB,GAAW,IAA+C,GAD/D,CAAC,eAAgB,mBAAoB,eACLxzY,QAAQw8X,EAAQ,GAAGpkD,GAAI,IAAW,CAElF,IAAI+7D,GAAQ,EACZ,QAFAtlY,EAAI2tX,EAAQ,GAAGgX,IAEN,GAAG,IAEX,KAAK,EAAGW,GAAQ,EAEhB,KAAK,EAEJhkE,EAAKv2T,GAAK,IAAK/K,EAAE,GAAG,IAAK,MAC1B,KAAK,EAAGslY,GAAQ,EAEhB,KAAK,EAEJhkE,EAAKv2T,GAAK,KAAM/K,EAAE,GAAG,IAAK,MAC3B,QAGC,GAFAshU,EAAK,GAEFr/T,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,+BAAiCxR,EAAE,GAAG,IAErEykY,EAAMxzY,MAAMq0Y,EAAQhkE,EAAK,IAAMmjE,EAAMzxX,OAASsyX,EAAQ,GAAKhkE,IAC3DqjE,GAAW,CACZ,CACD,CACA,GAAGF,EAAM1yY,OAAS,GAAKkQ,EAAKwxW,IAAK,MAAM,IAAIjiW,MAAM,qBACjD,OAAOizX,EAAM,EACd,CAGA,SAASpc,GAAyBnhG,EAAMn1R,EAAQkQ,GAC/C,IACI6lX,EADAn2X,EAASu1R,EAAKjzR,EAAIlC,EAAQ8nB,EAAmB,GAAb5X,EAAK41W,KAAY,EAAI,EAC/C6P,EAAMxgG,EAAK84E,WAAWnmV,GAChC,GAAU,OAAP6tW,EAAe,MAAO,CAAC,GAAG5Q,GAAU5vF,EAAMn1R,EAAO,IACpD,IAAI81X,EAAOE,GAAW7gG,EAAMwgG,EAAKzlX,GAGjC,OAFGlQ,IAAW21X,EAAM7tW,IAAKiuW,EAAOE,GAAe9gG,EAAMn1R,EAAS21X,EAAM7tW,EAAKguW,EAAM5lX,IAC/EilR,EAAKjzR,EAAItC,EACF,CAACk2X,EAAMC,EACf,CAuBA,SAASyd,GAA0Br+G,EAAMn1R,EAAQkQ,GAChD,IACI6lX,EADAn2X,EAASu1R,EAAKjzR,EAAIlC,EACZ21X,EAAMxgG,EAAK84E,WAAW,GAC5B6nB,EAAOE,GAAW7gG,EAAMwgG,EAAKzlX,GACjC,OAAU,OAAPylX,EAAsB,CAAC,GAAG5Q,GAAU5vF,EAAMn1R,EAAO,KACjDA,IAAW21X,EAAM,IAAGI,EAAOE,GAAe9gG,EAAMv1R,EAAS+1X,EAAM,EAAGG,EAAM5lX,IACpE,CAAC4lX,EAAMC,GACf,CA6BA,SAAS0d,GAAct+G,EAAMn1R,EAAQkQ,GACpC,IAAI+iH,EAAMkiK,EAAKjzR,EAAIlC,EACf2lH,EAAOwtQ,GAAch+F,GACT,GAAbjlR,EAAK41W,QAAa3wF,EAAKjzR,EAC1B,IAAIf,EA9BL,SAA4Bg0R,GAC3B,IAAIpzR,EACJ,GAAuC,QAApC2gX,GAAevtF,EAAKA,EAAKjzR,EAAI,GAAe,MAAO,CAAC0nX,GAAWz0F,GAAM,KACxE,OAAOA,EAAKA,EAAKjzR,IAChB,KAAK,EAAmB,OAAbizR,EAAKjzR,GAAK,EAAU,CAAC,SAAU,KAC1C,KAAK,EAA+C,OAAzCH,EAAuB,IAAnBozR,EAAKA,EAAKjzR,EAAE,GAAYizR,EAAKjzR,GAAK,EAAU,CAACH,EAAE,KAC9D,KAAK,EAAuC,OAAjCA,EAAIozR,EAAKA,EAAKjzR,EAAE,GAAIizR,EAAKjzR,GAAK,EAAU,CAACH,EAAE,KACtD,KAAK,EAAmB,OAAbozR,EAAKjzR,GAAK,EAAU,CAAC,GAAG,KAEpC,MAAO,EACR,CAoBWwxY,CAAmBv+G,GACzB64E,EAAQ74E,EAAK84E,WAAW,GACZ,GAAb/9V,EAAK41W,OACP3wF,EAAK84E,WAAW,GACb/9V,EAAK41W,MAAQ,GACD3wF,EAAK84E,WAAW,IAGhC,IAAI0lC,EApEL,SAAoCx+G,EAAMn1R,EAAQkQ,GACjD,IACI6lX,EADAn2X,EAASu1R,EAAKjzR,EAAIlC,EAAQ8nB,EAAmB,GAAb5X,EAAK41W,KAAY,EAAI,EAC/C6P,EAAMxgG,EAAK84E,WAAWnmV,GAChC,GAAU,OAAP6tW,EAAe,MAAO,CAAC,GAAG5Q,GAAU5vF,EAAMn1R,EAAO,IACpD,IAAI81X,EAAOE,GAAW7gG,EAAMwgG,EAAKzlX,GAGjC,OAFGlQ,IAAW21X,EAAM7tW,IAAKiuW,EAAOE,GAAe9gG,EAAMn1R,EAAS21X,EAAM7tW,EAAKguW,EAAM5lX,IAC/EilR,EAAKjzR,EAAItC,EACF,CAACk2X,EAAMC,EACf,CA4DW6d,CAA2Bz+G,EAAMliK,EAAMkiK,EAAKjzR,EAAGgO,GACzD,MAAO,CAACy1G,KAAKA,EAAMxkH,IAAIA,EAAI,GAAIy6X,QAAQ+X,EAAKE,OAAS7lC,GAAS,EAAK,EAAG1mI,GAAGnmO,EAAI,GAC9E,CAwBA,SAAS2yY,GAAwB30V,EAAMn/C,EAAQkQ,GAC9C,IAAIylX,EAAMx2U,EAAK8uT,WAAW,GACtB6nB,EAAOE,GAAW72U,EAAMw2U,EAAKzlX,GAC7BkyC,EAAKjD,EAAK8uT,WAAW,GAEzB,MAAO,CAAC6nB,EADG1zU,EAAK,EAAI6zU,GAAe92U,EAAMiD,EAAI0zU,EAAM5lX,GAAQ,KAE5D,CAGA,IAAI6jY,GAA+BD,GAE/BE,GAA8BF,GAM9BG,GAA8BH,GAE9BI,GAAgCJ,GAChCzD,GAAQ,CACV,EAAG,OACH,EAAG,OACH,EAAG,aACH,EAAG,YACH,EAAG,OACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,QACH,EAAG,gBACH,GAAI,OACJ,GAAI,aACJ,GAAI,cACJ,GAAI,cACJ,GAAI,cACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,iBACJ,GAAI,mBACJ,GAAI,iBACJ,GAAI,oBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,mBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,YACJ,GAAI,UACJ,GAAI,cACJ,GAAI,eACJ,GAAI,eACJ,GAAI,OACJ,GAAI,cACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,QACJ,GAAI,SACJ,GAAI,kBACJ,GAAI,eACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,SACJ,GAAI,aACJ,GAAI,YACJ,GAAI,cACJ,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,eACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,cACJ,GAAI,kBACJ,GAAI,cACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,SACJ,GAAI,cACJ,GAAI,YACJ,GAAI,eACJ,GAAI,mBACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,cACJ,GAAI,QACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,YACJ,GAAI,UACJ,GAAI,eACJ,GAAI,gBACJ,GAAI,iBACJ,IAAK,iBACL,IAAK,oBACL,IAAK,oBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,cACL,IAAK,gBACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK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K,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,I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,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WACpF,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WACpF,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UACpF,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UACpF,WAAY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CAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EACAA,EAEAC,EAEAC,EAEAC,GAEAC,GACAxhE,GACAA,GACAA,GACAA,GAEAi8D,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAwF,GAEAC,GAEAC,GAEAC,GACA5hE,GACAA,GACAA,GAEA6hE,GAEA3F,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEA4F,GAEAC,GAEAC,GAEAC,GAEAjiE,GACAA,GACAA,GACAkiE,GAEA/F,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAgG,GAEAC,GAEAC,GAEAC,GAEAtiE,GACAA,GACAA,GACAuiE,GAEAnG,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAoG,GAEAC,GAEAC,GAEAC,GACA3iE,GACAA,GACAA,GAEA4iE,GAEAC,GAEAA,GAEAA,GAEAA,GAEAA,GAEAA,GAEAK,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GAEAA,GACAA,GACAA,GAEAI,GACAC,GACAC,GACAC,GACAzjE,GACAA,GACAA,GACAA,GAEA0jE,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,G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ACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,QAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,SAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,QAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YACxC,CAAI,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,SACpC,WAAY,SAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,SAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,SAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,UAAY,WAAY,UAAY,WACpC,WAAY,UAAY,SAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAA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AAKykD,IACnC,IAEA2sc,EAAUhvgB,UAAU66mB,QAAU,WAC5B,OAAOj9lB,KAAK07lB,WAAWj4mB,OAAOuc,KAAKg9lB,WACrC,EAEA5rG,EAAUhvgB,UAAUoP,MAAQ,WAC1B,OAAO66C,EAAM2lJ,OAAOhyL,KAAKi9lB,UAAW,OAAOxylB,aAC7C,EAEA2oZ,EAAO3jE,QAAU2hK,aChEjBh+F,EAAO3jE,QAAU,CACfmhQ,QAAS,CACPjklB,KAAM,EACNyiC,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAIN0hjB,IAAK,CACHj0C,IAAK,EACLztgB,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oGCrwBR,IAAI/C,EAAQojT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AAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,M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","sources":["models/useAgent.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/antd/node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/antd/node_modules/@ant-design/icons/es/utils.js","../node_modules/antd/node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/antd/node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/antd/node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-notification/es/Notice.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/antd/es/_util/warning.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/@ant-design/icons-svg/es/asn/DotChartOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DotChartOutlined.js","../node_modules/antd/es/skeleton/Node.js","../node_modules/antd/es/skeleton/Image.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/index.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/tabs/index.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/Card.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-upload/es/request.js","../node_modules/rc-upload/es/uid.js","../node_modules/rc-upload/es/attr-accept.js","../node_modules/rc-upload/es/traverseFileTree.js","../node_modules/rc-upload/es/AjaxUploader.js","../node_modules/rc-upload/es/Upload.js","../node_modules/rc-upload/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/FileTwoTone.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/FileTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/PaperClipOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PictureTwoTone.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/PictureTwoTone.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/wave.js","../node_modules/antd/es/_util/raf.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/upload/utils.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/rc-progress/es/common.js","../node_modules/rc-progress/es/Line.js","../node_modules/rc-progress/es/Circle.js","../node_modules/rc-progress/es/hooks/useId.js","../node_modules/antd/es/progress/utils.js","../node_modules/antd/es/progress/Circle.js","../node_modules/antd/es/progress/Line.js","../node_modules/antd/es/progress/Steps.js","../node_modules/antd/es/progress/progress.js","../node_modules/antd/es/progress/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/upload/UploadList/ListItem.js","../node_modules/antd/es/upload/UploadList/index.js","../node_modules/antd/es/upload/Upload.js","../node_modules/antd/es/upload/Dragger.js","../node_modules/antd/es/upload/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/input/Group.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/antd/es/input/Password.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/antd/es/input/Search.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/index.js","../node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","../node_modules/@ant-design/icons/node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/icons/node_modules/@ant-design/colors/es/index.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/UploadOutlined.js","views/AddArtist/index.tsx","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","../node_modules/@ant-design/icons-svg/es/asn/SyncOutlined.js","../node_modules/@ant-design/icons/es/icons/SyncOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusCircleOutlined.js","views/AddTokensForLaunchpad/index.tsx","utils/bit.ts","utils/crc.ts","utils/hex.ts","utils/principal.ts","utils/sha224.ts","views/AddWhitelist/index.tsx","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/index.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/index.js","../node_modules/antd/es/popconfirm/PurePanel.js","../node_modules/antd/es/popconfirm/index.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/context/StickyContext.js","../node_modules/rc-table/es/context/HoverContext.js","../node_modules/rc-table/es/ContextSelector/index.js","../node_modules/rc-table/es/context/BodyContext.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/context/ExpandedRowContext.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/context/ResizeContext.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/constant.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/index.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/locale/en_US.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/antd/es/pagination/Select.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/table/util.js","../node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/FilterFilled.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/BarsOutlined.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/layout.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/utils/keyUtil.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/useUnmount.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/HolderOutlined.js","../node_modules/antd/es/tree/utils/dropIndicator.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/Tree.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/FolderOutlined.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/index.js","utils/icTime.ts","views/Announcement/index.tsx","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/list/Item.js","../node_modules/antd/es/list/index.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteTwoTone.js","../node_modules/@ant-design/icons/es/icons/DeleteTwoTone.js","utils/buffer.ts","views/ApplyForms/index.tsx","../node_modules/rc-picker/es/generate/moment.js","../node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","../node_modules/rc-picker/es/PanelContext.js","../node_modules/rc-picker/es/panels/Header.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeHeader.js","../node_modules/rc-picker/es/utils/timeUtil.js","../node_modules/rc-picker/es/panels/PanelBody.js","../node_modules/rc-picker/es/panels/DecadePanel/DecadeBody.js","../node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/rc-picker/es/panels/DecadePanel/index.js","../node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeHeader.js","../node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/rc-picker/es/panels/TimePanel/TimeUnitColumn.js","../node_modules/rc-picker/es/panels/TimePanel/TimeBody.js","../node_modules/rc-picker/es/hooks/useTimeSelection.js","../node_modules/rc-picker/es/panels/TimePanel/index.js","../node_modules/rc-picker/es/RangeContext.js","../node_modules/rc-picker/es/hooks/useCellClassName.js","../node_modules/rc-picker/es/panels/DatePanel/DateBody.js","../node_modules/rc-picker/es/panels/DatePanel/DateHeader.js","../node_modules/rc-picker/es/panels/DatePanel/index.js","../node_modules/rc-picker/es/panels/DatetimePanel/index.js","../node_modules/rc-picker/es/panels/WeekPanel/index.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthHeader.js","../node_modules/rc-picker/es/panels/MonthPanel/MonthBody.js","../node_modules/rc-picker/es/panels/MonthPanel/index.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterHeader.js","../node_modules/rc-picker/es/panels/QuarterPanel/QuarterBody.js","../node_modules/rc-picker/es/panels/QuarterPanel/index.js","../node_modules/rc-picker/es/panels/YearPanel/YearHeader.js","../node_modules/rc-picker/es/panels/YearPanel/YearBody.js","../node_modules/rc-picker/es/panels/YearPanel/index.js","../node_modules/rc-picker/es/utils/getExtraFooter.js","../node_modules/rc-picker/es/utils/getRanges.js","../node_modules/rc-picker/es/PickerPanel.js","../node_modules/rc-picker/es/PickerTrigger.js","../node_modules/rc-picker/es/hooks/usePickerInput.js","../node_modules/rc-picker/es/hooks/useTextValueMapping.js","../node_modules/rc-picker/es/hooks/useValueTexts.js","../node_modules/rc-picker/es/hooks/useHoverValue.js","../node_modules/rc-picker/es/utils/warnUtil.js","../node_modules/rc-picker/es/Picker.js","../node_modules/rc-picker/es/hooks/useRangeViewDates.js","../node_modules/rc-picker/es/RangePicker.js","../node_modules/rc-picker/es/hooks/useRangeDisabled.js","../node_modules/rc-picker/es/index.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/PickerTag.js","../node_modules/antd/es/date-picker/index.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/@google/model-viewer/dist/model-viewer.js","components/ModelViewer/index.jsx","components/NftViewer/index.jsx","utils/token.ts","views/AuditArtistNFT/index.tsx","views/BatchApprove/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/UpOutlined.js","../node_modules/rc-input-number/es/utils/supportUtil.js","../node_modules/rc-input-number/es/utils/numberUtil.js","../node_modules/rc-input-number/es/utils/MiniDecimal.js","../node_modules/rc-input-number/es/StepHandler.js","../node_modules/rc-input-number/es/InputNumber.js","../node_modules/rc-input-number/es/hooks/useCursor.js","../node_modules/rc-input-number/es/hooks/useFrame.js","../node_modules/rc-input-number/es/index.js","../node_modules/antd/es/input-number/index.js","../node_modules/xlsx/xlsx.mjs","../node_modules/js-databox/esm/metabox/did/metabox.js","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/api.ts","../node_modules/js-databox/node_modules/@dfinity/principal/src/utils/base32.ts","../node_modules/js-databox/node_modules/@dfinity/principal/src/utils/getCrc.ts","../node_modules/js-databox/node_modules/@dfinity/principal/src/index.ts","../node_modules/js-databox/node_modules/@dfinity/principal/src/utils/sha224.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/errors.ts","../node_modules/js-databox/node_modules/@dfinity/candid/src/utils/buffer.ts","../node_modules/js-databox/node_modules/@dfinity/candid/src/utils/hash.ts","../node_modules/js-databox/node_modules/@dfinity/candid/src/utils/leb128.ts","../node_modules/js-databox/node_modules/@dfinity/candid/src/utils/bigint-math.ts","../node_modules/js-databox/node_modules/@dfinity/candid/src/idl.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/request_id.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/auth.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/utils/buffer.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/cbor.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/http/types.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/http/transforms.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/http/index.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/proxy.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/agent/index.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/canisters/management_idl.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/canisters/management.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/vendor/bls/bls.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/vendor/bls/wasm.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/utils/bls.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/certificate.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/polling/index.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/actor.ts","../node_modules/js-databox/node_modules/@dfinity/agent/src/polling/strategy.ts","../node_modules/js-databox/esm/utils/common.js","../node_modules/js-databox/esm/utils/AESEncrypt.js","../node_modules/js-databox/esm/utils/RSAEncrypt.js","../node_modules/js-databox/esm/utils/Encrypt.js","../node_modules/js-databox/esm/metabox/metabox.js","../node_modules/js-databox/esm/databox/did/databox.js","../node_modules/nanoid/index.browser.js","../node_modules/js-databox/esm/databox/databox.js","../node_modules/bignumber.js/bignumber.mjs","service/rosetta.js","service/metabox.js","views/BatchMintBBox/index.tsx","service/upload.ts","views/BatchMIntTest/index.tsx","../node_modules/antd/es/form/hooks/useDebounce.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/compute-scroll-into-view/src/index.ts","../node_modules/scroll-into-view-if-needed/es/index.js","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/hooks/useFormItemStatus.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/antd/node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/antd/es/form/FormItem/ItemHolder.js","../node_modules/antd/es/form/FormItem/index.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/form/hooks/useFormInstance.js","views/BatchTransferNFT/index.tsx","views/Converter/index.tsx","../node_modules/rc-switch/es/index.js","../node_modules/antd/es/switch/index.js","../node_modules/antd/es/descriptions/Item.js","../node_modules/antd/es/descriptions/Cell.js","../node_modules/antd/es/descriptions/Row.js","../node_modules/antd/es/descriptions/index.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","views/CreateCollection/components/Upload.tsx","views/CreateCollection/index.tsx","views/DeleteCollection/index.tsx","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/mdast-util-definitions/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/unist-util-generated/lib/index.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/style-to-object/index.mjs","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/hast-util-parse-selector/lib/index.js","../node_modules/hastscript/lib/core.js","../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hastscript/lib/svg.js","../node_modules/hastscript/lib/html.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/lib/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","views/EditAnnouncement/index.tsx","views/EventRecord/LaunchpadStatus/index.tsx","views/EventRecord/TransactionHistory/index.tsx","../node_modules/antd/es/row/index.js","../node_modules/antd/es/col/index.js","views/EventRecord/TransferRecord/index.tsx","../node_modules/antd/es/avatar/SizeContext.js","../node_modules/antd/es/avatar/avatar.js","../node_modules/antd/es/avatar/group.js","../node_modules/antd/es/avatar/index.js","views/Guide/index.tsx","../node_modules/antd/es/layout/index.js","views/HomePage.tsx","../node_modules/@ant-design/icons-svg/es/asn/MinusCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusCircleOutlined.js","views/ImportCollectionLaunchpad/components/Upload.tsx","views/ImportCollectionLaunchpad/index.tsx","service/aws.ts","views/ImportCollectionYumi/components/Upload.tsx","views/ImportCollectionYumi/index.tsx","../node_modules/antd/es/divider/index.js","views/Login/index.tsx","components/Upload/index.jsx","views/MintNFTForArtist/components/ConfirmModal/index.jsx","views/MintNFTForArtist/components/PropertiesModal/index.jsx","views/MintNFTForArtist/components/SuccessModal/index.jsx","views/MintNFTForArtist/index.jsx","views/SetBanner/index.tsx","views/SetMinter/index.tsx","views/SignUp/index.tsx","router.tsx","service/candid/artist.did.js","service/artist.ts","service/candid/apply.did.js","service/candid/bberc721.did.js","service/candid/erc721.did.js","service/candid/lanuchpad.did.js","service/candid/record.did.js","service/index.ts","service/candid/shiku_ajy76.did.js","utils/actor.ts","../../../src/buffer.ts","../../../../src/identity/der.ts","../../../../src/identity/ed25519.ts","../../../../src/identity/secp256k1.ts","../../../../src/identity/delegation.ts","../../../../src/identity/webauthn.ts","../node_modules/ic-stoic-identity/src/index.js","utils/agent.ts","utils/getEnvs.ts","../../../../src/agent/api.ts","../../../src/errors.ts","../../../../src/utils/buffer.ts","../../../../src/utils/hash.ts","../../../../src/utils/leb128.ts","../../../src/idl.ts","../../../src/request_id.ts","../../../src/auth.ts","../../../src/cbor.ts","../../../../../src/agent/http/types.ts","../../../../../src/agent/http/transforms.ts","../../../../../src/agent/http/index.ts","../../../../src/agent/proxy.ts","../../../../src/agent/index.ts","../../../../src/canisters/management_idl.ts","../../../../src/canisters/management.ts","../../../../../src/vendor/bls/bls.ts","../../../../src/utils/bls.ts","../../../src/certificate.ts","../../../../src/polling/index.ts","../../../src/actor.ts","../../../../src/polling/strategy.ts","../node_modules/@dfinity/agent/node_modules/js-sha256/src/sha256.js","../node_modules/@dfinity/identity/node_modules/js-sha256/src/sha256.js","../../../../src/utils/base32.ts","../../../../src/utils/getCrc.ts","../../../src/index.ts","../../../../src/utils/sha224.ts","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/_util/type.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/spin/index.js","../node_modules/aws-sdk/clients/acm.js","../node_modules/aws-sdk/clients/amp.js","../node_modules/aws-sdk/clients/apigateway.js","../node_modules/aws-sdk/clients/applicationautoscaling.js","../node_modules/aws-sdk/clients/athena.js","../node_modules/aws-sdk/clients/autoscaling.js","../node_modules/aws-sdk/clients/browser_default.js","../node_modules/aws-sdk/clients/cloudformation.js","../node_modules/aws-sdk/clients/cloudfront.js","../node_modules/aws-sdk/clients/cloudhsm.js","../node_modules/aws-sdk/clients/cloudhsmv2.js","../node_modules/aws-sdk/clients/cloudtrail.js","../node_modules/aws-sdk/clients/cloudwatch.js","../node_modules/aws-sdk/clients/cloudwatchevents.js","../node_modules/aws-sdk/clients/cloudwatchlogs.js","../node_modules/aws-sdk/clients/codebuild.js","../node_modules/aws-sdk/clients/codecommit.js","../node_modules/aws-sdk/clients/codedeploy.js","../node_modules/aws-sdk/clients/codepipeline.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","../node_modules/aws-sdk/clients/cognitosync.js","../node_modules/aws-sdk/clients/comprehend.js","../node_modules/aws-sdk/clients/comprehendmedical.js","../node_modules/aws-sdk/clients/configservice.js","../node_modules/aws-sdk/clients/connect.js","../node_modules/aws-sdk/clients/costexplorer.js","../node_modules/aws-sdk/clients/cur.js","../node_modules/aws-sdk/clients/devicefarm.js","../node_modules/aws-sdk/clients/directconnect.js","../node_modules/aws-sdk/clients/dynamodb.js","../node_modules/aws-sdk/clients/dynamodbstreams.js","../node_modules/aws-sdk/clients/ec2.js","../node_modules/aws-sdk/clients/ecr.js","../node_modules/aws-sdk/clients/ecs.js","../node_modules/aws-sdk/clients/efs.js","../node_modules/aws-sdk/clients/elasticache.js","../node_modules/aws-sdk/clients/elasticbeanstalk.js","../node_modules/aws-sdk/clients/elastictranscoder.js","../node_modules/aws-sdk/clients/elb.js","../node_modules/aws-sdk/clients/elbv2.js","../node_modules/aws-sdk/clients/emr.js","../node_modules/aws-sdk/clients/firehose.js","../node_modules/aws-sdk/clients/forecastqueryservice.js","../node_modules/aws-sdk/clients/forecastservice.js","../node_modules/aws-sdk/clients/gamelift.js","../node_modules/aws-sdk/clients/iam.js","../node_modules/aws-sdk/clients/inspector.js","../node_modules/aws-sdk/clients/iot.js","../node_modules/aws-sdk/clients/iotanalytics.js","../node_modules/aws-sdk/clients/iotdata.js","../node_modules/aws-sdk/clients/kinesis.js","../node_modules/aws-sdk/clients/kinesisvideo.js","../node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","../node_modules/aws-sdk/clients/kinesisvideomedia.js","../node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","../node_modules/aws-sdk/clients/kms.js","../node_modules/aws-sdk/clients/lambda.js","../node_modules/aws-sdk/clients/lexmodelbuildingservice.js","../node_modules/aws-sdk/clients/lexruntime.js","../node_modules/aws-sdk/clients/lexruntimev2.js","../node_modules/aws-sdk/clients/location.js","../node_modules/aws-sdk/clients/machinelearning.js","../node_modules/aws-sdk/clients/marketplacecatalog.js","../node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","../node_modules/aws-sdk/clients/mediastoredata.js","../node_modules/aws-sdk/clients/mobileanalytics.js","../node_modules/aws-sdk/clients/mturk.js","../node_modules/aws-sdk/clients/opsworks.js","../node_modules/aws-sdk/clients/personalize.js","../node_modules/aws-sdk/clients/personalizeevents.js","../node_modules/aws-sdk/clients/personalizeruntime.js","../node_modules/aws-sdk/clients/polly.js","../node_modules/aws-sdk/clients/pricing.js","../node_modules/aws-sdk/clients/rds.js","../node_modules/aws-sdk/clients/redshift.js","../node_modules/aws-sdk/clients/rekognition.js","../node_modules/aws-sdk/clients/resourcegroups.js","../node_modules/aws-sdk/clients/route53.js","../node_modules/aws-sdk/clients/route53domains.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/secretsmanager.js","../node_modules/aws-sdk/clients/servicecatalog.js","../node_modules/aws-sdk/clients/ses.js","../node_modules/aws-sdk/clients/sns.js","../node_modules/aws-sdk/clients/sqs.js","../node_modules/aws-sdk/clients/ssm.js","../node_modules/aws-sdk/clients/storagegateway.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/clients/translate.js","../node_modules/aws-sdk/clients/waf.js","../node_modules/aws-sdk/clients/workdocs.js","../node_modules/aws-sdk/clients/xray.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browser.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/cloudfront/signer.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/dynamodb/converter.js","../node_modules/aws-sdk/lib/dynamodb/document_client.js","../node_modules/aws-sdk/lib/dynamodb/numberValue.js","../node_modules/aws-sdk/lib/dynamodb/set.js","../node_modules/aws-sdk/lib/dynamodb/translator.js","../node_modules/aws-sdk/lib/dynamodb/types.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/polly/presigner.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/rds/signer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/apigateway.js","../node_modules/aws-sdk/lib/services/cloudfront.js","../node_modules/aws-sdk/lib/services/dynamodb.js","../node_modules/aws-sdk/lib/services/ec2.js","../node_modules/aws-sdk/lib/services/iotdata.js","../node_modules/aws-sdk/lib/services/lambda.js","../node_modules/aws-sdk/lib/services/machinelearning.js","../node_modules/aws-sdk/lib/services/polly.js","../node_modules/aws-sdk/lib/services/rds.js","../node_modules/aws-sdk/lib/services/rdsutil.js","../node_modules/aws-sdk/lib/services/route53.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sqs.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/buffer/index.js","../node_modules/aws-sdk/node_modules/buffer/node_modules/ieee754/index.js","../node_modules/aws-sdk/node_modules/events/events.js","../node_modules/aws-sdk/node_modules/isarray/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","../node_modules/base64-js/index.js","../node_modules/bignumber.js/bignumber.js","../node_modules/bn.js/lib/bn.js","../node_modules/borc/node_modules/buffer/index.js","../node_modules/borc/src/constants.js","../node_modules/borc/src/decoder.asm.js","../node_modules/borc/src/decoder.js","../node_modules/borc/src/diagnose.js","../node_modules/borc/src/encoder.js","../node_modules/borc/src/index.js","../node_modules/borc/src/simple.js","../node_modules/borc/src/tagged.js","../node_modules/borc/src/utils.js","../node_modules/brorand/index.js","../node_modules/buffer/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/compressorjs/dist/compressor.js","../node_modules/copy-to-clipboard/index.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/blowfish.js","../node_modules/crypto-js/cipher-core.js","../node_modules/crypto-js/core.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/enc-base64url.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/evpkdf.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/hmac.js","../node_modules/crypto-js/index.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/md5.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha512.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/x64-core.js","../node_modules/define-data-property/index.js","../node_modules/dva-core/index.js","../node_modules/dva-core/lib/Plugin.js","../node_modules/dva-core/lib/checkModel.js","../node_modules/dva-core/lib/constants.js","../node_modules/dva-core/lib/createPromiseMiddleware.js","../node_modules/dva-core/lib/createStore.js","../node_modules/dva-core/lib/getReducer.js","../node_modules/dva-core/lib/getSaga.js","../node_modules/dva-core/lib/handleActions.js","../node_modules/dva-core/lib/index.js","../node_modules/dva-core/lib/prefixNamespace.js","../node_modules/dva-core/lib/prefixType.js","../node_modules/dva-core/lib/prefixedDispatch.js","../node_modules/dva-core/lib/subscription.js","../node_modules/dva-core/lib/utils.js","../node_modules/dva-core/node_modules/core-js/library/fn/array/from.js","../node_modules/dva-core/node_modules/core-js/library/fn/get-iterator.js","../node_modules/dva-core/node_modules/core-js/library/fn/is-iterable.js","../node_modules/dva-core/node_modules/core-js/library/fn/object/define-property.js","../node_modules/dva-core/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","../node_modules/dva-core/node_modules/core-js/library/fn/object/get-own-property-symbols.js","../node_modules/dva-core/node_modules/core-js/library/fn/object/keys.js","../node_modules/dva-core/node_modules/core-js/library/fn/promise.js","../node_modules/dva-core/node_modules/core-js/library/fn/symbol/index.js","../node_modules/dva-core/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/dva-core/node_modules/core-js/library/modules/_a-function.js","../node_modules/dva-core/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/dva-core/node_modules/core-js/library/modules/_an-instance.js","../node_modules/dva-core/node_modules/core-js/library/modules/_an-object.js","../node_modules/dva-core/node_modules/core-js/library/modules/_array-includes.js","../node_modules/dva-core/node_modules/core-js/library/modules/_classof.js","../node_modules/dva-core/node_modules/core-js/library/modules/_cof.js","../node_modules/dva-core/node_modules/core-js/library/modules/_core.js","../node_modules/dva-core/node_modules/core-js/library/modules/_create-property.js","../node_modules/dva-core/node_modules/core-js/library/modules/_ctx.js","../node_modules/dva-core/node_modules/core-js/library/modules/_defined.js","../node_modules/dva-core/node_modules/core-js/library/modules/_descriptors.js","../node_modules/dva-core/node_modules/core-js/library/modules/_dom-create.js","../node_modules/dva-core/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/dva-core/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/dva-core/node_modules/core-js/library/modules/_export.js","../node_modules/dva-core/node_modules/core-js/library/modules/_fails.js","../node_modules/dva-core/node_modules/core-js/library/modules/_for-of.js","../node_modules/dva-core/node_modules/core-js/library/modules/_global.js","../node_modules/dva-core/node_modules/core-js/library/modules/_has.js","../node_modules/dva-core/node_modules/core-js/library/modules/_hide.js","../node_modules/dva-core/node_modules/core-js/library/modules/_html.js","../node_modules/dva-core/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/dva-core/node_modules/core-js/library/modules/_invoke.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iobject.js","../node_modules/dva-core/node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/dva-core/node_modules/core-js/library/modules/_is-array.js","../node_modules/dva-core/node_modules/core-js/library/modules/_is-object.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iter-call.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iter-create.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iter-define.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iter-detect.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iter-step.js","../node_modules/dva-core/node_modules/core-js/library/modules/_iterators.js","../node_modules/dva-core/node_modules/core-js/library/modules/_library.js","../node_modules/dva-core/node_modules/core-js/library/modules/_meta.js","../node_modules/dva-core/node_modules/core-js/library/modules/_microtask.js","../node_modules/dva-core/node_modules/core-js/library/modules/_new-promise-capability.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-create.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-dp.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-dps.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-gops.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-keys.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-pie.js","../node_modules/dva-core/node_modules/core-js/library/modules/_object-sap.js","../node_modules/dva-core/node_modules/core-js/library/modules/_perform.js","../node_modules/dva-core/node_modules/core-js/library/modules/_promise-resolve.js","../node_modules/dva-core/node_modules/core-js/library/modules/_property-desc.js","../node_modules/dva-core/node_modules/core-js/library/modules/_redefine-all.js","../node_modules/dva-core/node_modules/core-js/library/modules/_redefine.js","../node_modules/dva-core/node_modules/core-js/library/modules/_set-species.js","../node_modules/dva-core/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/dva-core/node_modules/core-js/library/modules/_shared-key.js","../node_modules/dva-core/node_modules/core-js/library/modules/_shared.js","../node_modules/dva-core/node_modules/core-js/library/modules/_species-constructor.js","../node_modules/dva-core/node_modules/core-js/library/modules/_string-at.js","../node_modules/dva-core/node_modules/core-js/library/modules/_task.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-integer.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-length.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-object.js","../node_modules/dva-core/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/dva-core/node_modules/core-js/library/modules/_uid.js","../node_modules/dva-core/node_modules/core-js/library/modules/_user-agent.js","../node_modules/dva-core/node_modules/core-js/library/modules/_wks-define.js","../node_modules/dva-core/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/dva-core/node_modules/core-js/library/modules/_wks.js","../node_modules/dva-core/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/dva-core/node_modules/core-js/library/modules/core.get-iterator.js","../node_modules/dva-core/node_modules/core-js/library/modules/core.is-iterable.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.array.from.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.object.keys.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.promise.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/dva-core/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/dva-core/node_modules/core-js/library/modules/es7.promise.finally.js","../node_modules/dva-core/node_modules/core-js/library/modules/es7.promise.try.js","../node_modules/dva-core/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/dva-core/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/dva-core/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/dva-core/node_modules/regenerator-runtime/runtime-module.js","../node_modules/dva-core/node_modules/regenerator-runtime/runtime.js","../node_modules/dva-core/node_modules/warning/browser.js","../node_modules/dva/index.js","../node_modules/dva/lib/index.js","../node_modules/dva/node_modules/core-js/library/fn/array/from.js","../node_modules/dva/node_modules/core-js/library/fn/is-iterable.js","../node_modules/dva/node_modules/core-js/library/fn/object/define-property.js","../node_modules/dva/node_modules/core-js/library/fn/object/get-own-property-descriptor.js","../node_modules/dva/node_modules/core-js/library/fn/object/get-own-property-symbols.js","../node_modules/dva/node_modules/core-js/library/fn/object/keys.js","../node_modules/dva/node_modules/core-js/library/fn/symbol/index.js","../node_modules/dva/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/dva/node_modules/core-js/library/modules/_a-function.js","../node_modules/dva/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/dva/node_modules/core-js/library/modules/_an-object.js","../node_modules/dva/node_modules/core-js/library/modules/_array-includes.js","../node_modules/dva/node_modules/core-js/library/modules/_classof.js","../node_modules/dva/node_modules/core-js/library/modules/_cof.js","../node_modules/dva/node_modules/core-js/library/modules/_core.js","../node_modules/dva/node_modules/core-js/library/modules/_create-property.js","../node_modules/dva/node_modules/core-js/library/modules/_ctx.js","../node_modules/dva/node_modules/core-js/library/modules/_defined.js","../node_modules/dva/node_modules/core-js/library/modules/_descriptors.js","../node_modules/dva/node_modules/core-js/library/modules/_dom-create.js","../node_modules/dva/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/dva/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/dva/node_modules/core-js/library/modules/_export.js","../node_modules/dva/node_modules/core-js/library/modules/_fails.js","../node_modules/dva/node_modules/core-js/library/modules/_global.js","../node_modules/dva/node_modules/core-js/library/modules/_has.js","../node_modules/dva/node_modules/core-js/library/modules/_hide.js","../node_modules/dva/node_modules/core-js/library/modules/_html.js","../node_modules/dva/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/dva/node_modules/core-js/library/modules/_iobject.js","../node_modules/dva/node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/dva/node_modules/core-js/library/modules/_is-array.js","../node_modules/dva/node_modules/core-js/library/modules/_is-object.js","../node_modules/dva/node_modules/core-js/library/modules/_iter-call.js","../node_modules/dva/node_modules/core-js/library/modules/_iter-create.js","../node_modules/dva/node_modules/core-js/library/modules/_iter-define.js","../node_modules/dva/node_modules/core-js/library/modules/_iter-detect.js","../node_modules/dva/node_modules/core-js/library/modules/_iter-step.js","../node_modules/dva/node_modules/core-js/library/modules/_iterators.js","../node_modules/dva/node_modules/core-js/library/modules/_library.js","../node_modules/dva/node_modules/core-js/library/modules/_meta.js","../node_modules/dva/node_modules/core-js/library/modules/_object-create.js","../node_modules/dva/node_modules/core-js/library/modules/_object-dp.js","../node_modules/dva/node_modules/core-js/library/modules/_object-dps.js","../node_modules/dva/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/dva/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/dva/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/dva/node_modules/core-js/library/modules/_object-gops.js","../node_modules/dva/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/dva/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/dva/node_modules/core-js/library/modules/_object-keys.js","../node_modules/dva/node_modules/core-js/library/modules/_object-pie.js","../node_modules/dva/node_modules/core-js/library/modules/_object-sap.js","../node_modules/dva/node_modules/core-js/library/modules/_property-desc.js","../node_modules/dva/node_modules/core-js/library/modules/_redefine.js","../node_modules/dva/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/dva/node_modules/core-js/library/modules/_shared-key.js","../node_modules/dva/node_modules/core-js/library/modules/_shared.js","../node_modules/dva/node_modules/core-js/library/modules/_string-at.js","../node_modules/dva/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/dva/node_modules/core-js/library/modules/_to-integer.js","../node_modules/dva/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/dva/node_modules/core-js/library/modules/_to-length.js","../node_modules/dva/node_modules/core-js/library/modules/_to-object.js","../node_modules/dva/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/dva/node_modules/core-js/library/modules/_uid.js","../node_modules/dva/node_modules/core-js/library/modules/_wks-define.js","../node_modules/dva/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/dva/node_modules/core-js/library/modules/_wks.js","../node_modules/dva/node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/dva/node_modules/core-js/library/modules/core.is-iterable.js","../node_modules/dva/node_modules/core-js/library/modules/es6.array.from.js","../node_modules/dva/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/dva/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/dva/node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","../node_modules/dva/node_modules/core-js/library/modules/es6.object.keys.js","../node_modules/dva/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/dva/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/dva/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/dva/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/dva/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/dva/node_modules/history/cjs/history.js","../node_modules/dva/node_modules/history/createHashHistory.js","../node_modules/dva/node_modules/history/index.js","../node_modules/dva/node_modules/history/warnAboutDeprecatedCJSRequire.js","../node_modules/dva/node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/dva/node_modules/history/esm/history.js","../node_modules/dva/node_modules/react-router-dom/es/Router.js","../node_modules/dva/node_modules/react-router-dom/es/HashRouter.js","../node_modules/react-router/es/Route.js","../node_modules/dva/node_modules/react-router-dom/es/Route.js","../node_modules/react-router/es/Switch.js","../node_modules/dva/node_modules/react-router-dom/es/Switch.js","../node_modules/dva/router.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/extend/index.js","../node_modules/flatten/index.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/global/document.js","../node_modules/global/window.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hash.js/lib/hash.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/hasown/index.js","../node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/inline-style-parser/index.js","../node_modules/invariant/browser.js","../node_modules/is-arguments/index.js","../node_modules/is-buffer/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-plain-object/index.js","../node_modules/is-typed-array/index.js","../node_modules/iso-url/index.js","../node_modules/iso-url/src/relative.js","../node_modules/iso-url/src/url-browser.js","../node_modules/isobject/index.js","../node_modules/jmespath/jmespath.js","../node_modules/js-databox/node_modules/js-sha256/src/sha256.js","../node_modules/js-sha256/src/sha256.js","../node_modules/json-bigint/index.js","../node_modules/json-bigint/lib/parse.js","../node_modules/json-bigint/lib/stringify.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/debounce.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/lodash.js","../node_modules/lodash/now.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/minimalistic-assert/index.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/moment/moment.js","../node_modules/object-assign/index.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/parse5/lib/common/html.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/rc-util/es/omit.js","../node_modules/react-copy-to-clipboard/lib/Component.js","../node_modules/react-copy-to-clipboard/lib/index.js","../node_modules/react-dom/cjs/react-dom.development.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/react-redux/es/utils/PropTypes.js","../node_modules/react-redux/es/utils/warning.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/utils/verifyPlainObject.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/verifySubselectors.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-router-redux/es/reducer.js","../node_modules/react-router-redux/es/ConnectedRouter.js","../node_modules/react-router-redux/es/selectors.js","../node_modules/react-router-redux/es/actions.js","../node_modules/react-router-redux/es/middleware.js","../node_modules/react-router/es/Router.js","../node_modules/react-router/es/matchPath.js","../node_modules/react/cjs/react-jsx-dev-runtime.development.js","../node_modules/react/cjs/react.development.js","../node_modules/react/index.js","../node_modules/react/jsx-dev-runtime.js","../node_modules/redux-saga/lib/effects.js","../node_modules/redux-saga/lib/internal/buffers.js","../node_modules/redux-saga/lib/internal/channel.js","../node_modules/redux-saga/lib/internal/io-helpers.js","../node_modules/redux-saga/lib/internal/io.js","../node_modules/redux-saga/lib/internal/middleware.js","../node_modules/redux-saga/lib/internal/proc.js","../node_modules/redux-saga/lib/internal/runSaga.js","../node_modules/redux-saga/lib/internal/sagaHelpers/fsmIterator.js","../node_modules/redux-saga/lib/internal/sagaHelpers/index.js","../node_modules/redux-saga/lib/internal/sagaHelpers/takeEvery.js","../node_modules/redux-saga/lib/internal/sagaHelpers/takeLatest.js","../node_modules/redux-saga/lib/internal/sagaHelpers/throttle.js","../node_modules/redux-saga/lib/internal/scheduler.js","../node_modules/redux-saga/lib/internal/utils.js","../node_modules/redux/es/createStore.js","../node_modules/redux/es/utils/warning.js","../node_modules/redux/es/combineReducers.js","../node_modules/redux/es/bindActionCreators.js","../node_modules/redux/es/compose.js","../node_modules/redux/es/applyMiddleware.js","../node_modules/redux/es/index.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/scheduler/cjs/scheduler-tracing.development.js","../node_modules/scheduler/cjs/scheduler.development.js","../node_modules/scheduler/index.js","../node_modules/scheduler/tracing.js","../node_modules/secp256k1/elliptic.js","../node_modules/secp256k1/lib/elliptic.js","../node_modules/secp256k1/lib/index.js","../node_modules/set-function-length/index.js","../node_modules/shallowequal/index.js","../index.ts","../serializer.ts","../value.ts","../node_modules/string-random/index.js","../node_modules/style-to-object/index.js","../node_modules/symbol-observable/es/index.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/tiny-invariant/dist/tiny-invariant.cjs.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/toggle-selection/index.js","../node_modules/tweetnacl/nacl-fast.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/uuid/dist/bytesToUuid.js","../node_modules/uuid/dist/index.js","../node_modules/uuid/dist/md5-browser.js","../node_modules/uuid/dist/rng-browser.js","../node_modules/uuid/dist/sha1-browser.js","../node_modules/uuid/dist/v1.js","../node_modules/uuid/dist/v3.js","../node_modules/uuid/dist/v35.js","../node_modules/uuid/dist/v4.js","../node_modules/uuid/dist/v5.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/warning/warning.js","../node_modules/which-typed-array/index.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/array/from.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/get-iterator.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/is-iterable.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/object/define-property.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/object/get-own-property-descriptor.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/object/get-own-property-symbols.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/object/keys.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/promise.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/symbol.js","../node_modules/dva-core/node_modules/@babel/runtime/core-js/symbol/iterator.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/objectSpread.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/dva-core/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/dva-core/node_modules/@babel/runtime/regenerator/index.js","../node_modules/dva/node_modules/@babel/runtime/core-js/array/from.js","../node_modules/dva/node_modules/@babel/runtime/core-js/is-iterable.js","../node_modules/dva/node_modules/@babel/runtime/core-js/object/define-property.js","../node_modules/dva/node_modules/@babel/runtime/core-js/object/get-own-property-descriptor.js","../node_modules/dva/node_modules/@babel/runtime/core-js/object/get-own-property-symbols.js","../node_modules/dva/node_modules/@babel/runtime/core-js/object/keys.js","../node_modules/dva/node_modules/@babel/runtime/core-js/symbol.js","../node_modules/dva/node_modules/@babel/runtime/core-js/symbol/iterator.js","../node_modules/dva/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/dva/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/dva/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dva/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/dva/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/dva/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/dva/node_modules/@babel/runtime/helpers/objectSpread.js","../node_modules/dva/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/dva/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/available-typed-arrays/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/yocto-queue/index.js","../node_modules/p-limit/async-hooks-stub.js","../node_modules/p-limit/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","index.tsx"],"sourcesContent":["import _ from 'lodash';\nimport {\n createApplyActor,\n createLaunchpadActor,\n createRecordActor,\n createShikuActor,\n} from '../service';\nimport { createArtistActor, getWhitelist } from '../service/artist';\nimport { getAgent } from '../utils/agent';\nimport { getEnvs } from '../utils/getEnvs';\n\nexport default {\n namespace: 'use_agent',\n state: {\n whitelist: null,\n applyActor: null,\n shikuActor: null,\n launchpadActor: null,\n recordActor: null,\n artistActor: null,\n agent: null,\n agentType: null,\n principal: null,\n isYumiWhiteList: false,\n isLaunchpadWhiteList: false,\n isApplyWhiteList: false,\n isArtistWhiteList: false,\n },\n effects: {\n *queryShikuActorEffect(action, { call, put }) {\n console.time('a');\n let { agentType, whitelist, type, callback } = action.payload;\n whitelist = _.sortedUniq(whitelist);\n if (type === 'add' && agentType === 'plug') {\n const prevWhitelist = yield window.ic.plug.agent._identity;\n if (prevWhitelist.whitelist.join('') == whitelist.join('')) {\n return;\n } else {\n const agent = yield getAgent(agentType, whitelist);\n yield put({ type: 'setAgentReducer', payload: { whitelist, agent } });\n return;\n }\n }\n if (callback) {\n callback('Request connect');\n }\n let agent = null;\n agent = yield getAgent(agentType, whitelist);\n console.timeEnd('a');\n console.time('b');\n if (callback) {\n callback('Creating actor');\n }\n console.debug(\"🚀 ~ *queryShikuActorEffect ~ shikuActor:\", getEnvs().LAUNCHPAD_CANISTER_ID)\n const [shikuActor, launchpadActor, recordActor, applyActor, artistActor] = yield [\n \n createShikuActor(agent)(getEnvs().SHIKU_CANISTER_ID),\n createLaunchpadActor(agent)(getEnvs().LAUNCHPAD_CANISTER_ID),\n createRecordActor(agent)(getEnvs().RECORD_CANISTER_ID),\n createApplyActor(agent)(getEnvs().APPLY_CANISTER_ID),\n createArtistActor(agent)(getEnvs().ARTIST_CANISTER_ID),\n ];\n console.timeEnd('b');\n console.log(agent);\n if (callback) {\n callback('Checking identity');\n }\n let principal = yield agent.getPrincipal();\n console.log(principal.toString());\n console.time('c');\n const whitelists = yield Promise.all([\n shikuActor.getCreator_whitelist(),\n launchpadActor.getCreator_whitelist(),\n applyActor.getCreator_whitelist(),\n artistActor.getOperations(),\n ]);\n console.log(whitelist);\n console.timeEnd('c');\n let whitelistsString = [];\n whitelists.forEach((principalArray) => {\n whitelistsString.push(principalArray.map((principal) => principal.toString()));\n });\n console.log(whitelistsString);\n principal = principal.toString();\n const isYumiWhiteList = whitelistsString[0].indexOf(principal) == -1 ? false : true;\n const isLaunchpadWhiteList =\n whitelistsString[1].indexOf(principal) == -1 ? false : true;\n const isApplyWhiteList = whitelistsString[2].indexOf(principal) == -1 ? false : true;\n const isArtistWhiteList = whitelistsString[3].indexOf(principal) == -1 ? false : true;\n return yield put({\n type: 'setAgentReducer',\n payload: {\n whitelist,\n recordActor,\n launchpadActor,\n shikuActor,\n agentType,\n agent,\n principal,\n isYumiWhiteList,\n isLaunchpadWhiteList,\n isApplyWhiteList,\n applyActor,\n artistActor,\n isArtistWhiteList,\n },\n });\n },\n },\n reducers: {\n setAgentReducer(state, action) {\n return { ...state, ...action.payload };\n },\n },\n subscriptions: {},\n};\n","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util.js';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb, } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { boundAlpha, convertToPercentage } from './util.js';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = findStyles(container).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nimport camelCase from 'lodash/camelCase';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils';\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default 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 subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\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 if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default 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 function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 || _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (isDOM(node)) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (callback) {\n var cacheElementRef = useRef();\n\n // Cache callback\n var callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n // Internal motion event handler\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []);\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, motionCls, motionCls && statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n }\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n var _ref2, _ref3, _ref4;\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(status);\n }, [status]);\n var _useStepQueue = useStepQueue(status, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n status === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n status === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n _this.setState({\n keyEntities: nextKeyEntities\n });\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n var _super = _createSuper(Notice);\n function Notice() {\n var _this;\n _classCallCheck(this, Notice);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n _this.clearCloseTimer();\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n return _this;\n }\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark ||\n // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n return node;\n }\n }]);\n return Notice;\n}(Component);\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};\nexport { Notice as default };","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n 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}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n var cloneList = _toConsumableArray(originElements);\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n firstMount = false;\n });\n }\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"getContainer\"];\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n var _super = _createSuper(Notification);\n function Notification() {\n var _this;\n _classCallCheck(this, Notification);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n _this.add = function (originNotice, holderCallback) {\n var _originNotice$key;\n var key = (_originNotice$key = originNotice.key) !== null && _originNotice$key !== void 0 ? _originNotice$key : getUuid();\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n var maxCount = _this.props.maxCount;\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n return {\n notices: updatedNotices\n };\n });\n };\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey !== null && userPassKey !== void 0 ? userPassKey : key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n _this.noticePropsMap = {};\n return _this;\n }\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n _this2.remove(noticeKey);\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n });\n // Give to motion\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style,\n visible = _ref5.visible;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n _this2.hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n visible: visible\n }));\n }));\n }\n }]);\n return Notification;\n}(Component);\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, _excluded);\n var div = document.createElement('div');\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n var called = false;\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n unmount(div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n }\n // Only used for test case usage\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","import rcWarning, { resetWarned } from \"rc-util/es/warning\";\nexport { resetWarned };\nexport function noop() {}\n// eslint-disable-next-line import/no-mutable-exports\nvar warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(valid, component, message) {\n rcWarning(valid, \"[antd: \".concat(component, \"] \").concat(message));\n // StrictMode will inject console which will not throw warning in React 17.\n if (process.env.NODE_ENV === 'test') {\n resetWarned();\n }\n };\n}\nexport default warning;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n var _props$locale = props.locale,\n locale = _props$locale === void 0 ? {} : _props$locale,\n children = props.children,\n _ANT_MARK__ = props._ANT_MARK__;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(function () {\n changeConfirmLocale(locale && locale.Modal);\n return function () {\n changeConfirmLocale();\n };\n }, [locale]);\n var getMemoizedContextValue = React.useMemo(function () {\n return _extends(_extends({}, locale), {\n exist: true\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nexport default LocaleProvider;","import locale from '../locale/default';\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './default';\nvar LocaleReceiver = function LocaleReceiver(props) {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale,\n children = props.children;\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n var getLocaleCode = React.useMemo(function () {\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport var useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleOutlinedSvg\n }));\n};\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleOutlinedSvg\n }));\n};\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n props = args.props;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n var closeIconToRender = typeof closeIcon === 'undefined' ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }))) : closeIcon;\n var autoMarginTag = !description && iconNode ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n })) : null;\n return {\n content: ( /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null))),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n props: props\n };\n}\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n return useNotification;\n}","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion.js';\nimport { names } from './css-color-names.js';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util.js';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n var variables = {};\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new TinyColor(colorVal);\n var colorPalettes = generate(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new TinyColor(theme.primaryColor);\n var primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport { merge } from \"rc-util/es/utils/set\";\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n }\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children;\n var validateMessages = React.useMemo(function () {\n var _a, _b, _c, _d;\n return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n value: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls,\n getContextPopupContainer = args.getPopupContainer;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n var iconPrefixCls = getIconPrefixCls();\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer || getContextPopupContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n messageInstance = instance;\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n}\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport var typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: ( /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content)))),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\nfunction notice(args) {\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls, iconPrefixCls));\n });\n });\n var result = function result() {\n var _a;\n if (messageInstance) {\n messageInstance.removeNotice(target);\n (_a = args.onClose) === null || _a === void 0 ? void 0 : _a.call(args);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\ntypeList.forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { attachTypeApi, getKeyThenIncreaseKey, typeList } from '..';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls;\n var getPopupContainer;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls,\n getPopupContainer: getPopupContainer\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n typeList.forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n getPopupContainer = context.getPopupContainer;\n return holder;\n })];\n };\n return useMessage;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Element = function Element(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n size = props.size,\n shape = props.shape;\n var sizeCls = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), size === 'large'), \"\".concat(prefixCls, \"-sm\"), size === 'small'));\n var shapeCls = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-circle\"), shape === 'circle'), \"\".concat(prefixCls, \"-square\"), shape === 'square'), \"\".concat(prefixCls, \"-round\"), shape === 'round'));\n var sizeStyle = React.useMemo(function () {\n return typeof size === 'number' ? {\n width: size,\n height: size,\n lineHeight: \"\".concat(size, \"px\")\n } : {};\n }, [size]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(prefixCls, sizeCls, shapeCls, className),\n style: _extends(_extends({}, sizeStyle), style)\n });\n};\nexport default Element;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonAvatar = function SkeletonAvatar(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'circle' : _props$shape,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls', 'className']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-avatar\"),\n shape: shape,\n size: size\n }, otherProps)));\n};\nexport default SkeletonAvatar;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonButton = function SkeletonButton(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), \"\".concat(prefixCls, \"-block\"), block), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-button\"),\n size: size\n }, otherProps)));\n};\nexport default SkeletonButton;","// This icon file is generated automatically.\nvar DotChartOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"dot-chart\", \"theme\": \"outlined\" };\nexport default DotChartOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DotChartOutlinedSvg from \"@ant-design/icons-svg/es/asn/DotChartOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DotChartOutlined = function DotChartOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DotChartOutlinedSvg\n }));\n};\nDotChartOutlined.displayName = 'DotChartOutlined';\nexport default /*#__PURE__*/React.forwardRef(DotChartOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport DotChartOutlined from \"@ant-design/icons/es/icons/DotChartOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar SkeletonNode = function SkeletonNode(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n active = props.active,\n children = props.children;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n var content = children !== null && children !== void 0 ? children : /*#__PURE__*/React.createElement(DotChartOutlined, null);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-image\"), className),\n style: style\n }, content));\n};\nexport default SkeletonNode;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar path = 'M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z';\nvar SkeletonImage = function SkeletonImage(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n active = props.active;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-image\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 1098 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: \"\".concat(prefixCls, \"-image-svg\")\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: path,\n className: \"\".concat(prefixCls, \"-image-path\")\n }))));\n};\nexport default SkeletonImage;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Element from './Element';\nvar SkeletonInput = function SkeletonInput(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n active = props.active,\n block = props.block,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n var otherProps = omit(props, ['prefixCls']);\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-element\"), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-active\"), active), \"\".concat(prefixCls, \"-block\"), block), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls\n }, /*#__PURE__*/React.createElement(Element, _extends({\n prefixCls: \"\".concat(prefixCls, \"-input\"),\n size: size\n }, otherProps)));\n};\nexport default SkeletonInput;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Paragraph = function Paragraph(props) {\n var getWidth = function getWidth(index) {\n var width = props.width,\n _props$rows = props.rows,\n rows = _props$rows === void 0 ? 2 : _props$rows;\n if (Array.isArray(width)) {\n return width[index];\n }\n // last paragraph\n if (rows - 1 === index) {\n return width;\n }\n return undefined;\n };\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n rows = props.rows;\n var rowList = _toConsumableArray(Array(rows)).map(function (_, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: index,\n style: {\n width: getWidth(index)\n }\n })\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(prefixCls, className),\n style: style\n }, rowList);\n};\nexport default Paragraph;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* eslint-disable jsx-a11y/heading-has-content */\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Title = function Title(_ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n width = _ref.width,\n style = _ref.style;\n return /*#__PURE__*/React.createElement(\"h3\", {\n className: classNames(prefixCls, className),\n style: _extends({\n width: width\n }, style)\n });\n};\nexport default Title;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SkeletonAvatar from './Avatar';\nimport SkeletonButton from './Button';\nimport SkeletonNode from './Node';\nimport Element from './Element';\nimport SkeletonImage from './Image';\nimport SkeletonInput from './Input';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nfunction getComponentProps(prop) {\n if (prop && _typeof(prop) === 'object') {\n return prop;\n }\n return {};\n}\nfunction getAvatarBasicProps(hasTitle, hasParagraph) {\n if (hasTitle && !hasParagraph) {\n // Square avatar\n return {\n size: 'large',\n shape: 'square'\n };\n }\n return {\n size: 'large',\n shape: 'circle'\n };\n}\nfunction getTitleBasicProps(hasAvatar, hasParagraph) {\n if (!hasAvatar && hasParagraph) {\n return {\n width: '38%'\n };\n }\n if (hasAvatar && hasParagraph) {\n return {\n width: '50%'\n };\n }\n return {};\n}\nfunction getParagraphBasicProps(hasAvatar, hasTitle) {\n var basicProps = {};\n // Width\n if (!hasAvatar || !hasTitle) {\n basicProps.width = '61%';\n }\n // Rows\n if (!hasAvatar && hasTitle) {\n basicProps.rows = 3;\n } else {\n basicProps.rows = 2;\n }\n return basicProps;\n}\nvar Skeleton = function Skeleton(props) {\n var customizePrefixCls = props.prefixCls,\n loading = props.loading,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$avatar = props.avatar,\n avatar = _props$avatar === void 0 ? false : _props$avatar,\n _props$title = props.title,\n title = _props$title === void 0 ? true : _props$title,\n _props$paragraph = props.paragraph,\n paragraph = _props$paragraph === void 0 ? true : _props$paragraph,\n active = props.active,\n round = props.round;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('skeleton', customizePrefixCls);\n if (loading || !('loading' in props)) {\n var hasAvatar = !!avatar;\n var hasTitle = !!title;\n var hasParagraph = !!paragraph;\n // Avatar\n var avatarNode;\n if (hasAvatar) {\n var avatarProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-avatar\")\n }, getAvatarBasicProps(hasTitle, hasParagraph)), getComponentProps(avatar));\n // We direct use SkeletonElement as avatar in skeleton internal.\n avatarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(Element, _extends({}, avatarProps)));\n }\n var contentNode;\n if (hasTitle || hasParagraph) {\n // Title\n var $title;\n if (hasTitle) {\n var titleProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-title\")\n }, getTitleBasicProps(hasAvatar, hasParagraph)), getComponentProps(title));\n $title = /*#__PURE__*/React.createElement(Title, _extends({}, titleProps));\n }\n // Paragraph\n var paragraphNode;\n if (hasParagraph) {\n var paragraphProps = _extends(_extends({\n prefixCls: \"\".concat(prefixCls, \"-paragraph\")\n }, getParagraphBasicProps(hasAvatar, hasTitle)), getComponentProps(paragraph));\n paragraphNode = /*#__PURE__*/React.createElement(Paragraph, _extends({}, paragraphProps));\n }\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, $title, paragraphNode);\n }\n var cls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-with-avatar\"), hasAvatar), \"\".concat(prefixCls, \"-active\"), active), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-round\"), round), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: style\n }, avatarNode, contentNode);\n }\n return typeof children !== 'undefined' ? children : null;\n};\nSkeleton.Button = SkeletonButton;\nSkeleton.Avatar = SkeletonAvatar;\nSkeleton.Input = SkeletonInput;\nSkeleton.Image = SkeletonImage;\nSkeleton.Node = SkeletonNode;\nexport default Skeleton;","import Skeleton from './Skeleton';\nexport default Skeleton;","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nEllipsisOutlined.displayName = 'EllipsisOutlined';\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = useComposeRef(originRef, elementRef);\n var getDom = function getDom() {\n var _elementRef$current;\n return findDOMNode(elementRef.current) || (\n // Support `nativeElement` format\n elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef, useState } from 'react';\n\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nexport default function useUpdate(callback) {\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = useRef(0);\n var callbackRef = useRef();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n useLayoutUpdateEffect(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nexport function useUpdateState(defaultState) {\n var batchRef = useRef([]);\n var _useState3 = useState({}),\n _useState4 = _slicedToArray(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nexport function genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content;\n\n // Parse extra\n var assertExtra = {};\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nexport default ExtraContent;","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from \"./Dom/canUseDom\";\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 || didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 || (_containerRef$current = _containerRef$current.parentNode) === null || _containerRef$current === void 0 || _containerRef$current.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? Math.floor(elem.getBoundingClientRect().width)\n : Math.floor(elem.getBoundingClientRect().height);\n const isBorderBox = isBorderBoxFn(elem);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which)\n : getPBMWidth(elem, ['margin'], which))\n );\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && _result) {\n latestOnAlign(source, _result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus;\n var focusMenuRef = React.useRef(false);\n\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2, _triggerRef$current$t3;\n\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : (_triggerRef$current$t3 = _triggerRef$current$t2.focus) === null || _triggerRef$current$t3 === void 0 ? void 0 : _triggerRef$current$t3.call(_triggerRef$current$t2);\n setTriggerVisible(false);\n\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n\n var focusMenu = function focusMenu() {\n var _triggerRef$current2, _triggerRef$current2$, _triggerRef$current2$2, _triggerRef$current2$3;\n\n var elements = getFocusNodeList((_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.popupRef) === null || _triggerRef$current2$ === void 0 ? void 0 : (_triggerRef$current2$2 = _triggerRef$current2$.current) === null || _triggerRef$current2$2 === void 0 ? void 0 : (_triggerRef$current2$3 = _triggerRef$current2$2.getElement) === null || _triggerRef$current2$3 === void 0 ? void 0 : _triggerRef$current2$3.call(_triggerRef$current2$2));\n var firstElement = elements[0];\n\n if (firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus) {\n firstElement.focus();\n focusMenuRef.current = true;\n return true;\n }\n\n return false;\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n\n case TAB:\n {\n var focusResult = false;\n\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n\n break;\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n window.addEventListener('keydown', handleKeyDown);\n\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\n\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n onVisibleChange: props.onVisibleChange,\n autoFocus: autoFocus\n });\n\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n\n return overlayElement;\n };\n\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), overlayElement);\n };\n\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n\n return getMenuElement();\n };\n\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n\n return !alignPoint;\n };\n\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n\n if (openClassName !== undefined) {\n return openClassName;\n }\n\n return \"\".concat(prefixCls, \"-open\");\n };\n\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n\n var triggerHideAction = hideAction;\n\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\n\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedHidden = responsive && !display;\n // ================================ Effect ================================\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []);\n // ================================ Render ================================\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n var overflowProps = {};\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n // Updater Trigger\n var updateFuncRef = React.useRef(null);\n // Notify update\n var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n if (!updateFuncRef.current) {\n updateFuncRef.current = [];\n channelUpdate(function () {\n unstable_batchedUpdates(function () {\n updateFuncRef.current.forEach(function (fn) {\n fn();\n });\n updateFuncRef.current = null;\n });\n });\n }\n updateFuncRef.current.push(callback);\n };\n return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n // Value\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stateValue = _React$useState2[0],\n setStateValue = _React$useState2[1];\n // Set State\n var setEffectVal = useEvent(function (nextValue) {\n notifyEffectUpdate(function () {\n setStateValue(nextValue);\n });\n });\n return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n if (typeof MessageChannel === 'undefined') {\n raf(callback);\n } else {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n return callback();\n };\n channel.port2.postMessage(undefined);\n }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext);\n // Render directly when context not provided\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3);\n // Do not pass context to sub item to avoid multiple measure\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var fullySSR = ssr === 'full';\n var notifyEffectUpdate = useBatcher();\n var _useEffectState = useEffectState(notifyEffectUpdate, null),\n _useEffectState2 = _slicedToArray(_useEffectState, 2),\n containerWidth = _useEffectState2[0],\n setContainerWidth = _useEffectState2[1];\n var mergedContainerWidth = containerWidth || 0;\n var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n itemWidths = _useEffectState4[0],\n setItemWidths = _useEffectState4[1];\n var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n prevRestWidth = _useEffectState6[0],\n setPrevRestWidth = _useEffectState6[1];\n var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n restWidth = _useEffectState8[0],\n setRestWidth = _useEffectState8[1];\n var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n suffixWidth = _useEffectState10[0],\n setSuffixWidth = _useEffectState10[1];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n // Always use the max width to avoid blink\n var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n // ================================= Data =================================\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n // ================================= Item =================================\n var getKey = useCallback(function (item, index) {\n var _ref;\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n setDisplayCount(count);\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n }\n // ================================= Size =================================\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n return clone;\n });\n }\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n }\n // ================================ Effect ================================\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n useLayoutEffect(function () {\n if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1;\n // When data count change to 0, reset this since not loop will reach\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i);\n // Fully will always render\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n }\n // Break since data not ready\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n }\n // Find best match\n totalWidth += currentItemWidth;\n if (\n // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n // ================================ Render ================================\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n };\n // >>>>> Choice render fun by `renderRawItem`\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n };\n // >>>>> Rest node\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from './Overflow';\nexport default Overflow;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { Divider, MenuItem, MenuItemGroup, SubMenu } from '..';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/nodeUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n var getInternalPopupContainer = useMemoCallback(getPopupContainer);\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getInternalPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/nodeUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var removable = editable && tab.closable !== false && !tab.disabled;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, tab.label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, tab.closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { genDataNodeKey } from \"../util\";\nfunction TabNode(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = editable && closable !== false && !disabled;\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": genDataNodeKey(key),\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useUpdate, { useUpdateState } from \"../hooks/useUpdate\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { genDataNodeKey, stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nfunction TabNavList(props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = useUpdateState(new Map()),\n _useUpdateState2 = _slicedToArray(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = useRef();\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = useVisibleRange(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = useEvent(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(genDataNodeKey(key), \"\\\"]\"));\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useUpdate(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n var activeTabOffset = tabOffsets.get(activeKey);\n\n // Delay set ink style to avoid remove tab blink\n var inkBarRafRef = useRef();\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]);\n\n // ========================= Effect ========================\n useEffect(function () {\n scrollToTab();\n // eslint-disable-next-line\n }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n useEffect(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\n\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n\n// Used for accessibility\nvar uuid = 0;\nfunction Tabs(_ref, ref) {\n var _classNames;\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated);\n\n // ======================== Mobile ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\nexport default ForwardTabs;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\n}","import Tabs from \"./Tabs\";\nexport default Tabs;","import { tuple } from './type';\n// ================== Collapse Motion ==================\nvar getCollapsedHeight = function getCollapsedHeight() {\n return {\n height: 0,\n opacity: 0\n };\n};\nvar getRealHeight = function getRealHeight(node) {\n var scrollHeight = node.scrollHeight;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nvar getCurrentHeight = function getCurrentHeight(node) {\n return {\n height: node ? node.offsetHeight : 0\n };\n};\nvar skipOpacityTransition = function skipOpacityTransition(_, event) {\n return (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\n};\nvar collapseMotion = {\n motionName: 'ant-motion-collapse',\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n};\nvar SelectPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nvar getTransitionDirection = function getTransitionDirection(placement) {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return \"slide-down\";\n }\n return \"slide-up\";\n};\nvar getTransitionName = function getTransitionName(rootPrefixCls, motion, transitionName) {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return \"\".concat(rootPrefixCls, \"-\").concat(motion);\n};\nexport { getTransitionName, getTransitionDirection };\nexport default collapseMotion;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getTransitionName } from '../../_util/motion';\nvar motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n var animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = _extends({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = _extends(_extends({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(function (item) {\n return item;\n });\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n var childrenItems = toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var key = node.key,\n props = node.props;\n var _a = props || {},\n tab = _a.tab,\n restProps = __rest(_a, [\"tab\"]);\n var item = _extends(_extends({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","var TabPane = function TabPane() {\n return null;\n};\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport TabPane from './TabPane';\nfunction Tabs(_a) {\n var type = _a.type,\n className = _a.className,\n propSize = _a.size,\n _onEdit = _a.onEdit,\n hideAdd = _a.hideAdd,\n centered = _a.centered,\n addIcon = _a.addIcon,\n children = _a.children,\n items = _a.items,\n animated = _a.animated,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"children\", \"items\", \"animated\"]);\n var customizePrefixCls = props.prefixCls,\n _props$moreIcon = props.moreIcon,\n moreIcon = _props$moreIcon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$moreIcon;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n getPopupContainer = _React$useContext.getPopupContainer;\n var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n var editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: function onEdit(editType, _ref) {\n var key = _ref.key,\n event = _ref.event;\n _onEdit === null || _onEdit === void 0 ? void 0 : _onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n var rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n var mergedItems = useLegacyItems(items, children);\n var mergedAnimated = useAnimateConfig(prefixCls, animated);\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (contextSize) {\n var size = propSize !== undefined ? propSize : contextSize;\n return /*#__PURE__*/React.createElement(RcTabs, _extends({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, props, {\n items: mergedItems,\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), size), \"\".concat(prefixCls, \"-card\"), ['card', 'editable-card'].includes(type)), \"\".concat(prefixCls, \"-editable-card\"), type === 'editable-card'), \"\".concat(prefixCls, \"-centered\"), centered), className),\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n }));\n });\n}\nTabs.TabPane = TabPane;\nexport default Tabs;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nvar Grid = function Grid(_a) {\n var prefixCls = _a.prefixCls,\n className = _a.className,\n _a$hoverable = _a.hoverable,\n hoverable = _a$hoverable === void 0 ? true : _a$hoverable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"hoverable\"]);\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('card', prefixCls);\n var classString = classNames(\"\".concat(prefix, \"-grid\"), className, _defineProperty({}, \"\".concat(prefix, \"-grid-hoverable\"), hoverable));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: classString\n }));\n });\n};\nexport default Grid;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport Skeleton from '../skeleton';\nimport Tabs from '../tabs';\nimport Grid from './Grid';\nfunction getAction(actions) {\n var actionList = actions.map(function (action, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n style: {\n width: \"\".concat(100 / actions.length, \"%\")\n },\n key: \"action-\".concat(index)\n }, /*#__PURE__*/React.createElement(\"span\", null, action))\n );\n });\n return actionList;\n}\nvar Card = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var onTabChange = function onTabChange(key) {\n var _a;\n (_a = props.onTabChange) === null || _a === void 0 ? void 0 : _a.call(props, key);\n };\n var isContainGrid = function isContainGrid() {\n var containGrid;\n React.Children.forEach(props.children, function (element) {\n if (element && element.type && element.type === Grid) {\n containGrid = true;\n }\n });\n return containGrid;\n };\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n extra = props.extra,\n _props$headStyle = props.headStyle,\n headStyle = _props$headStyle === void 0 ? {} : _props$headStyle,\n _props$bodyStyle = props.bodyStyle,\n bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle,\n title = props.title,\n loading = props.loading,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customizeSize = props.size,\n type = props.type,\n cover = props.cover,\n actions = props.actions,\n tabList = props.tabList,\n children = props.children,\n activeTabKey = props.activeTabKey,\n defaultActiveTabKey = props.defaultActiveTabKey,\n tabBarExtraContent = props.tabBarExtraContent,\n hoverable = props.hoverable,\n _props$tabProps = props.tabProps,\n tabProps = _props$tabProps === void 0 ? {} : _props$tabProps,\n others = __rest(props, [\"prefixCls\", \"className\", \"extra\", \"headStyle\", \"bodyStyle\", \"title\", \"loading\", \"bordered\", \"size\", \"type\", \"cover\", \"actions\", \"tabList\", \"children\", \"activeTabKey\", \"defaultActiveTabKey\", \"tabBarExtraContent\", \"hoverable\", \"tabProps\"]);\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var loadingBlock = /*#__PURE__*/React.createElement(Skeleton, {\n loading: true,\n active: true,\n paragraph: {\n rows: 4\n },\n title: false\n }, children);\n var hasActiveTabKey = activeTabKey !== undefined;\n var extraProps = _extends(_extends({}, tabProps), _defineProperty(_defineProperty({}, hasActiveTabKey ? 'activeKey' : 'defaultActiveKey', hasActiveTabKey ? activeTabKey : defaultActiveTabKey), \"tabBarExtraContent\", tabBarExtraContent));\n var head;\n var tabs = tabList && tabList.length ? ( /*#__PURE__*/React.createElement(Tabs, _extends({\n size: \"large\"\n }, extraProps, {\n className: \"\".concat(prefixCls, \"-head-tabs\"),\n onChange: onTabChange,\n items: tabList.map(function (item) {\n var _a;\n return {\n label: item.tab,\n key: item.key,\n disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : false\n };\n })\n }))) : null;\n if (title || extra || tabs) {\n head = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head\"),\n style: headStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-wrapper\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-head-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra)), tabs);\n }\n var coverDom = cover ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-cover\")\n }, cover) : null;\n var body = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, loading ? loadingBlock : children);\n var actionDom = actions && actions.length ? ( /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-actions\")\n }, getAction(actions))) : null;\n var divProps = omit(others, ['onTabChange']);\n var mergedSize = customizeSize || size;\n var classString = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-loading\"), loading), \"\".concat(prefixCls, \"-bordered\"), bordered), \"\".concat(prefixCls, \"-hoverable\"), hoverable), \"\".concat(prefixCls, \"-contain-grid\"), isContainGrid()), \"\".concat(prefixCls, \"-contain-tabs\"), tabList && tabList.length), \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(prefixCls, \"-type-\").concat(type), !!type), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, divProps, {\n className: classString\n }), head, coverDom, body, actionDom);\n});\nexport default Card;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigConsumer } from '../config-provider';\nvar Meta = function Meta(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n avatar = props.avatar,\n title = props.title,\n description = props.description,\n others = __rest(props, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n var prefixCls = getPrefixCls('card', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-meta\"), className);\n var avatarDom = avatar ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-avatar\")\n }, avatar) : null;\n var titleDom = title ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-title\")\n }, title) : null;\n var descriptionDom = description ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-description\")\n }, description)) : null;\n var MetaDetail = titleDom || descriptionDom ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-meta-detail\")\n }, titleDom, descriptionDom)) : null;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatarDom, MetaDetail);\n });\n};\nexport default Meta;","import InternalCard from './Card';\nimport Grid from './Grid';\nimport Meta from './Meta';\nvar Card = InternalCard;\nCard.Grid = Grid;\nCard.Meta = Meta;\nexport default Card;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","function getError(option, xhr) {\n var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n var xhr = new XMLHttpRequest();\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n // eslint-disable-next-line no-undef\n var formData = new FormData();\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key];\n // support key-value array data\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(\"\".concat(key, \"[]\"), item);\n });\n return;\n }\n formData.append(key, value);\n });\n }\n // eslint-disable-next-line no-undef\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n return option.onSuccess(getBody(xhr), xhr);\n };\n xhr.open(option.method, option.action, true);\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n var headers = option.headers || {};\n // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n Object.keys(headers).forEach(function (h) {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","var now = +new Date();\nvar index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return \"rc-upload-\".concat(now, \"-\").concat(++index);\n}","import warning from \"rc-util/es/warning\";\nexport default (function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = file.type || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim();\n // This is something like */*,* allow all files\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n }\n // like .jpg, .png\n if (validType.charAt(0) === '.') {\n var lowerFileName = fileName.toLowerCase();\n var lowerType = validType.toLowerCase();\n var affixList = [lowerType];\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n return affixList.some(function (affix) {\n return lowerFileName.endsWith(affix);\n });\n }\n // This is something like a image/* mime type\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n // Full match\n if (mimeType === validType) {\n return true;\n }\n // Invalidate type should skip\n if (/^\\w+$/.test(validType)) {\n warning(false, \"Upload takes an invalidate 'accept' type '\".concat(validType, \"'.Skip for check.\"));\n return true;\n }\n return false;\n });\n }\n return true;\n});","function loopFiles(item, callback) {\n var dirReader = item.createReader();\n var fileList = [];\n function sequence() {\n dirReader.readEntries(function (entries) {\n var entryList = Array.prototype.slice.apply(entries);\n fileList = fileList.concat(entryList);\n // Check if all the file has been viewed\n var isFinished = !entryList.length;\n if (isFinished) {\n callback(fileList);\n } else {\n sequence();\n }\n });\n }\n sequence();\n}\nvar traverseFileTree = function traverseFileTree(files, callback, isAccepted) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n var _traverseFileTree = function _traverseFileTree(item, path) {\n if (!item) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n if (item.isFile) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n });\n // eslint-disable-next-line no-param-reassign\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n callback([file]);\n }\n });\n } else if (item.isDirectory) {\n loopFiles(item, function (entries) {\n entries.forEach(function (entryItem) {\n _traverseFileTree(entryItem, \"\".concat(path).concat(item.name, \"/\"));\n });\n });\n }\n };\n files.forEach(function (file) {\n _traverseFileTree(file.webkitGetAsEntry());\n });\n};\nexport default traverseFileTree;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"capture\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"];\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n _inherits(AjaxUploader, _Component);\n var _super = _createSuper(AjaxUploader);\n function AjaxUploader() {\n var _this;\n _classCallCheck(this, AjaxUploader);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n uid: getUid()\n };\n _this.reqs = {};\n _this.fileInput = void 0;\n _this._isMounted = void 0;\n _this.onChange = function (e) {\n var _this$props = _this.props,\n accept = _this$props.accept,\n directory = _this$props.directory;\n var files = e.target.files;\n var acceptedFiles = _toConsumableArray(files).filter(function (file) {\n return !directory || attrAccept(file, accept);\n });\n _this.uploadFiles(acceptedFiles);\n _this.reset();\n };\n _this.onClick = function (e) {\n var el = _this.fileInput;\n if (!el) {\n return;\n }\n var target = e.target;\n var onClick = _this.props.onClick;\n if (target && target.tagName === 'BUTTON') {\n var parent = el.parentNode;\n parent.focus();\n target.blur();\n }\n el.click();\n if (onClick) {\n onClick(e);\n }\n };\n _this.onKeyDown = function (e) {\n if (e.key === 'Enter') {\n _this.onClick(e);\n }\n };\n _this.onFileDrop = function (e) {\n var multiple = _this.props.multiple;\n e.preventDefault();\n if (e.type === 'dragover') {\n return;\n }\n if (_this.props.directory) {\n traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n return attrAccept(_file, _this.props.accept);\n });\n } else {\n var files = _toConsumableArray(e.dataTransfer.files).filter(function (file) {\n return attrAccept(file, _this.props.accept);\n });\n if (multiple === false) {\n files = files.slice(0, 1);\n }\n _this.uploadFiles(files);\n }\n };\n _this.uploadFiles = function (files) {\n var originFiles = _toConsumableArray(files);\n var postFiles = originFiles.map(function (file) {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return _this.processFile(file, originFiles);\n });\n // Batch upload files\n Promise.all(postFiles).then(function (fileList) {\n var onBatchStart = _this.props.onBatchStart;\n onBatchStart === null || onBatchStart === void 0 ? void 0 : onBatchStart(fileList.map(function (_ref) {\n var origin = _ref.origin,\n parsedFile = _ref.parsedFile;\n return {\n file: origin,\n parsedFile: parsedFile\n };\n }));\n fileList.filter(function (file) {\n return file.parsedFile !== null;\n }).forEach(function (file) {\n _this.post(file);\n });\n });\n };\n /**\n * Process file before upload. When all the file is ready, we start upload.\n */\n _this.processFile = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(file, fileList) {\n var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = _this.props.beforeUpload;\n transformedFile = file;\n if (!beforeUpload) {\n _context.next = 14;\n break;\n }\n _context.prev = 3;\n _context.next = 6;\n return beforeUpload(file, fileList);\n case 6:\n transformedFile = _context.sent;\n _context.next = 12;\n break;\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](3);\n // Rejection will also trade as false\n transformedFile = false;\n case 12:\n if (!(transformedFile === false)) {\n _context.next = 14;\n break;\n }\n return _context.abrupt(\"return\", {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n });\n case 14:\n // Get latest action\n action = _this.props.action;\n if (!(typeof action === 'function')) {\n _context.next = 21;\n break;\n }\n _context.next = 18;\n return action(file);\n case 18:\n mergedAction = _context.sent;\n _context.next = 22;\n break;\n case 21:\n mergedAction = action;\n case 22:\n // Get latest data\n data = _this.props.data;\n if (!(typeof data === 'function')) {\n _context.next = 29;\n break;\n }\n _context.next = 26;\n return data(file);\n case 26:\n mergedData = _context.sent;\n _context.next = 30;\n break;\n case 29:\n mergedData = data;\n case 30:\n parsedData =\n // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (_typeof(transformedFile) === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return _context.abrupt(\"return\", {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n });\n case 35:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[3, 9]]);\n }));\n return function (_x, _x2) {\n return _ref2.apply(this, arguments);\n };\n }();\n _this.saveFileInput = function (node) {\n _this.fileInput = node;\n };\n return _this;\n }\n _createClass(AjaxUploader, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._isMounted = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.abort();\n }\n }, {\n key: \"post\",\n value: function post(_ref3) {\n var _this2 = this;\n var data = _ref3.data,\n origin = _ref3.origin,\n action = _ref3.action,\n parsedFile = _ref3.parsedFile;\n if (!this._isMounted) {\n return;\n }\n var _this$props2 = this.props,\n onStart = _this$props2.onStart,\n customRequest = _this$props2.customRequest,\n name = _this$props2.name,\n headers = _this$props2.headers,\n withCredentials = _this$props2.withCredentials,\n method = _this$props2.method;\n var uid = origin.uid;\n var request = customRequest || defaultRequest;\n var requestOption = {\n action: action,\n filename: name,\n data: data,\n file: parsedFile,\n headers: headers,\n withCredentials: withCredentials,\n method: method || 'post',\n onProgress: function onProgress(e) {\n var onProgress = _this2.props.onProgress;\n onProgress === null || onProgress === void 0 ? void 0 : onProgress(e, parsedFile);\n },\n onSuccess: function onSuccess(ret, xhr) {\n var onSuccess = _this2.props.onSuccess;\n onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ret, parsedFile, xhr);\n delete _this2.reqs[uid];\n },\n onError: function onError(err, ret) {\n var onError = _this2.props.onError;\n onError === null || onError === void 0 ? void 0 : onError(err, ret, parsedFile);\n delete _this2.reqs[uid];\n }\n };\n onStart(origin);\n this.reqs[uid] = request(requestOption);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.setState({\n uid: getUid()\n });\n }\n }, {\n key: \"abort\",\n value: function abort(file) {\n var reqs = this.reqs;\n if (file) {\n var uid = file.uid ? file.uid : file;\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n Tag = _this$props3.component,\n prefixCls = _this$props3.prefixCls,\n className = _this$props3.className,\n disabled = _this$props3.disabled,\n id = _this$props3.id,\n style = _this$props3.style,\n multiple = _this$props3.multiple,\n accept = _this$props3.accept,\n capture = _this$props3.capture,\n children = _this$props3.children,\n directory = _this$props3.directory,\n openFileDialogOnClick = _this$props3.openFileDialogOnClick,\n onMouseEnter = _this$props3.onMouseEnter,\n onMouseLeave = _this$props3.onMouseLeave,\n otherProps = _objectWithoutProperties(_this$props3, _excluded);\n var cls = classNames(_defineProperty(_defineProperty(_defineProperty({}, prefixCls, true), \"\".concat(prefixCls, \"-disabled\"), disabled), className, className));\n // because input don't have directory/webkitdirectory type declaration\n var dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n var events = disabled ? {} : {\n onClick: openFileDialogOnClick ? this.onClick : function () {},\n onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onDrop: this.onFileDrop,\n onDragOver: this.onFileDrop,\n tabIndex: '0'\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, events, {\n className: cls,\n role: \"button\",\n style: style\n }), /*#__PURE__*/React.createElement(\"input\", _extends({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n }), {\n id: id,\n disabled: disabled,\n type: \"file\",\n ref: this.saveFileInput,\n onClick: function onClick(e) {\n return e.stopPropagation();\n } // https://github.com/ant-design/ant-design/issues/19948\n ,\n key: this.state.uid,\n style: {\n display: 'none'\n },\n accept: accept\n }, dirProps, {\n multiple: multiple,\n onChange: this.onChange\n }, capture != null ? {\n capture: capture\n } : {})), children);\n }\n }]);\n return AjaxUploader;\n}(Component);\nexport default AjaxUploader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types:0 */\nimport React, { Component } from 'react';\nimport AjaxUpload from './AjaxUploader';\nfunction empty() {}\nvar Upload = /*#__PURE__*/function (_Component) {\n _inherits(Upload, _Component);\n var _super = _createSuper(Upload);\n function Upload() {\n var _this;\n _classCallCheck(this, Upload);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.uploader = void 0;\n _this.saveUploader = function (node) {\n _this.uploader = node;\n };\n return _this;\n }\n _createClass(Upload, [{\n key: \"abort\",\n value: function abort(file) {\n this.uploader.abort(file);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(AjaxUpload, _extends({}, this.props, {\n ref: this.saveUploader\n }));\n }\n }]);\n return Upload;\n}(Component);\nUpload.defaultProps = {\n component: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true\n};\nexport default Upload;","import Upload from './Upload';\nexport default Upload;","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileTwoTone = function FileTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileTwoToneSvg\n }));\n};\nFileTwoTone.displayName = 'FileTwoTone';\nexport default /*#__PURE__*/React.forwardRef(FileTwoTone);","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PaperClipOutlined = function PaperClipOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PaperClipOutlinedSvg\n }));\n};\nPaperClipOutlined.displayName = 'PaperClipOutlined';\nexport default /*#__PURE__*/React.forwardRef(PaperClipOutlined);","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from '../components/AntdIcon';\nvar PictureTwoTone = function PictureTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PictureTwoToneSvg\n }));\n};\nPictureTwoTone.displayName = 'PictureTwoTone';\nexport default /*#__PURE__*/React.forwardRef(PictureTwoTone);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport var useCompactItemContext = function useCompactItemContext(prefixCls, direction) {\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var compactItemClassnames = React.useMemo(function () {\n if (!compactItemContext) return '';\n var compactDirection = compactItemContext.compactDirection,\n isFirstItem = compactItemContext.isFirstItem,\n isLastItem = compactItemContext.isLastItem;\n var separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-compact\").concat(separator, \"item\"), true), \"\".concat(prefixCls, \"-compact\").concat(separator, \"first-item\"), isFirstItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"last-item\"), isLastItem), \"\".concat(prefixCls, \"-compact\").concat(separator, \"item-rtl\"), direction === 'rtl'));\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames: compactItemClassnames\n };\n};\nexport var NoCompactStyle = function NoCompactStyle(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nvar CompactItem = function CompactItem(_a) {\n var children = _a.children,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nvar Compact = function Compact(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? 'middle' : _props$size,\n direction = props.direction,\n block = props.block,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"children\"]);\n var prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n var clx = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), \"\".concat(prefixCls, \"-block\"), block), \"\".concat(prefixCls, \"-vertical\"), direction === 'vertical'), className);\n var compactItemContext = React.useContext(SpaceCompactItemContext);\n var childNodes = toArray(children);\n var nodes = React.useMemo(function () {\n return childNodes.map(function (child, i) {\n var key = child && child.key || \"\".concat(prefixCls, \"-item-\").concat(i);\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n });\n }, [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clx\n }, restProps), nodes);\n};\nexport default Compact;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport raf from './raf';\nimport { cloneElement } from './reactNode';\nvar styleForPseudo;\n// Where el is the DOM element you'd like to test for visibility\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return !element || element.offsetParent === null || element.hidden;\n}\nfunction getValidateContainer(nodeRoot) {\n if (nodeRoot instanceof Document) {\n return nodeRoot.body;\n }\n return Array.from(nodeRoot.childNodes).find(function (ele) {\n return (ele === null || ele === void 0 ? void 0 : ele.nodeType) === Node.ELEMENT_NODE;\n });\n}\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n var _super = _createSuper(Wave);\n function Wave() {\n var _this;\n _classCallCheck(this, Wave);\n _this = _super.apply(this, arguments);\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.animationStart = false;\n _this.destroyed = false;\n _this.onClick = function (node, waveColor) {\n var _a, _b;\n var _this$props = _this.props,\n insertExtraNode = _this$props.insertExtraNode,\n disabled = _this$props.disabled;\n if (disabled || !node || isHidden(node) || node.className.includes('-leave')) {\n return;\n }\n _this.extraNode = document.createElement('div');\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n var getPrefixCls = _this.context.getPrefixCls;\n extraNode.className = \"\".concat(getPrefixCls(''), \"-click-animating-node\");\n var attributeName = _this.getAttributeName();\n node.setAttribute(attributeName, 'true');\n // Not white or transparent or grey\n if (waveColor && waveColor !== '#fff' && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && waveColor !== 'rgba(255, 255, 255, 1)' && isNotGrey(waveColor) && !/rgba\\((?:\\d*, ){3}0\\)/.test(waveColor) &&\n // any transparent rgba color\n waveColor !== 'transparent') {\n extraNode.style.borderColor = waveColor;\n var nodeRoot = ((_a = node.getRootNode) === null || _a === void 0 ? void 0 : _a.call(node)) || node.ownerDocument;\n var nodeBody = (_b = getValidateContainer(nodeRoot)) !== null && _b !== void 0 ? _b : nodeRoot;\n styleForPseudo = updateCSS(\"\\n [\".concat(getPrefixCls(''), \"-click-animating-without-extra-node='true']::after, .\").concat(getPrefixCls(''), \"-click-animating-node {\\n --antd-wave-shadow-color: \").concat(waveColor, \";\\n }\"), 'antd-wave', {\n csp: _this.csp,\n attachTo: nodeBody\n });\n }\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.addEventListener(\"\".concat(name, \"start\"), _this.onTransitionStart);\n node.addEventListener(\"\".concat(name, \"end\"), _this.onTransitionEnd);\n });\n };\n _this.onTransitionStart = function (e) {\n if (_this.destroyed) {\n return;\n }\n var node = _this.containerRef.current;\n if (!e || e.target !== node || _this.animationStart) {\n return;\n }\n _this.resetEffect(node);\n };\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n _this.resetEffect(e.target);\n };\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.includes('disabled')) {\n return;\n }\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n _this.resetEffect(node);\n // Get wave color from target\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') ||\n // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this.animationStartId);\n _this.animationStart = true;\n // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n _this.animationStartId = raf(function () {\n _this.animationStart = false;\n }, 10);\n };\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n if (! /*#__PURE__*/React.isValidElement(children)) return children;\n var ref = _this.containerRef;\n if (supportRef(children)) {\n ref = composeRef(children.ref, _this.containerRef);\n }\n return cloneElement(children, {\n ref: ref\n });\n };\n return _this;\n }\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n var node = this.containerRef.current;\n if (!node || node.nodeType !== 1) {\n return;\n }\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n this.destroyed = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var getPrefixCls = this.context.getPrefixCls;\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? \"\".concat(getPrefixCls(''), \"-click-animating\") : \"\".concat(getPrefixCls(''), \"-click-animating-without-extra-node\");\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n var _this2 = this;\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n if (styleForPseudo) {\n styleForPseudo.innerHTML = '';\n }\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n ['transition', 'animation'].forEach(function (name) {\n node.removeEventListener(\"\".concat(name, \"start\"), _this2.onTransitionStart);\n node.removeEventListener(\"\".concat(name, \"end\"), _this2.onTransitionEnd);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderWave);\n }\n }]);\n return Wave;\n}(React.Component);\nWave.contextType = ConfigContext;\nexport default Wave;","import raf from \"rc-util/es/raf\";\nvar id = 0;\nvar ids = {};\n// Support call raf with delay specified frame\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n function internalCallback() {\n restFrames -= 1;\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n ids[myId] = raf(internalCallback);\n return myId;\n}\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\nwrapperRaf.ids = ids; // export this for test usage","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nexport var GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nvar ButtonGroup = function ButtonGroup(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n var classes = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CSSMotion from 'rc-motion';\nimport React from 'react';\nvar getCollapsedWidth = function getCollapsedWidth() {\n return {\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n };\n};\nvar getRealWidth = function getRealWidth(node) {\n return {\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n };\n};\nvar LoadingIcon = function LoadingIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n loading = _ref.loading,\n existIcon = _ref.existIcon;\n var visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: \"\".concat(prefixCls, \"-loading-icon-motion\"),\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, function (_ref2, ref) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\"),\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\nexport default LoadingIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport Group, { GroupSizeContext } from './button-group';\nimport LoadingIcon from './LoadingIcon';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nfunction isString(str) {\n return typeof str === 'string';\n}\nfunction isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\n// Insert one space between two chinese characters automatically.\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child === null || child === undefined) {\n return;\n }\n var SPACE = needInserted ? ' ' : '';\n // strictNullChecks oops.\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (typeof child === 'string') {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n var isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n // Pass to React.Children.map to auto fill key\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('default', 'circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type: type\n };\n}\nvar InternalButton = function InternalButton(props, ref) {\n var _classNames;\n var _props$loading = props.loading,\n loading = _props$loading === void 0 ? false : _props$loading,\n customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n _props$shape = props.shape,\n shape = _props$shape === void 0 ? 'default' : _props$shape,\n customizeSize = props.size,\n customDisabled = props.disabled,\n className = props.className,\n children = props.children,\n icon = props.icon,\n _props$ghost = props.ghost,\n ghost = _props$ghost === void 0 ? false : _props$ghost,\n _props$block = props.block,\n block = _props$block === void 0 ? false : _props$block,\n _props$htmlType = props.htmlType,\n htmlType = _props$htmlType === void 0 ? 'button' : _props$htmlType,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"disabled\", \"className\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var groupSize = React.useContext(GroupSizeContext);\n var _React$useState = React.useState(!!loading),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerLoading = _React$useState2[0],\n setLoading = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hasTwoCNChar = _React$useState4[0],\n setHasTwoCNChar = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n autoInsertSpaceInButton = _React$useContext.autoInsertSpaceInButton,\n direction = _React$useContext.direction;\n var buttonRef = ref || /*#__PURE__*/React.createRef();\n var isNeedInserted = function isNeedInserted() {\n return React.Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n };\n var fixTwoCNChar = function fixTwoCNChar() {\n // Fix for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n var buttonText = buttonRef.current.textContent;\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n };\n // =============== Update Loading ===============\n var loadingOrDelay = typeof loading === 'boolean' ? loading : (loading === null || loading === void 0 ? void 0 : loading.delay) || true;\n React.useEffect(function () {\n var delayTimer = null;\n if (typeof loadingOrDelay === 'number') {\n delayTimer = window.setTimeout(function () {\n delayTimer = null;\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n return function () {\n if (delayTimer) {\n // in order to not perform a React state update on an unmounted component\n // and clear timer after 'loadingOrDelay' updated.\n window.clearTimeout(delayTimer);\n delayTimer = null;\n }\n };\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n var handleClick = function handleClick(e) {\n var onClick = props.onClick;\n // https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false;\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n var sizeFullname = compactSize || groupSize || customizeSize || size;\n var sizeCls = sizeFullname ? sizeClassNameMap[sizeFullname] || '' : '';\n var iconType = innerLoading ? 'loading' : icon;\n var linkButtonRestProps = omit(rest, ['navigate']);\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape !== 'default' && shape), \"\".concat(prefixCls, \"-\").concat(type), type), \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && !!iconType), \"\".concat(prefixCls, \"-background-ghost\"), ghost && !isUnBorderedButtonType(type)), \"\".concat(prefixCls, \"-loading\"), innerLoading), \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace && !innerLoading), \"\".concat(prefixCls, \"-block\"), block), \"\".concat(prefixCls, \"-dangerous\"), !!danger), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), linkButtonRestProps.href !== undefined && mergedDisabled)), compactItemClassnames, className);\n var iconNode = icon && !innerLoading ? icon : ( /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n }));\n var kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n }\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (isUnBorderedButtonType(type)) {\n return buttonNode;\n }\n return /*#__PURE__*/React.createElement(Wave, {\n disabled: !!innerLoading\n }, buttonNode);\n};\nvar Button = /*#__PURE__*/React.forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import Button from './button';\nexport default Button;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useForceUpdate() {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n return forceUpdate;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function file2Obj(file) {\n return _extends(_extends({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n var nextFileList = _toConsumableArray(fileList);\n var fileIndex = nextFileList.findIndex(function (_ref) {\n var uid = _ref.uid;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n var matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(function (item) {\n return item[matchKey] === file[matchKey];\n })[0];\n}\nexport function removeFileItem(file, fileList) {\n var matchKey = file.uid !== undefined ? 'uid' : 'name';\n var removed = fileList.filter(function (item) {\n return item[matchKey] !== file[matchKey];\n });\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nvar extname = function extname() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var temp = url.split('/');\n var filename = temp[temp.length - 1];\n var filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nvar isImageFileType = function isImageFileType(type) {\n return type.indexOf('image/') === 0;\n};\nexport var isImageUrl = function isImageUrl(file) {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n var url = file.thumbUrl || file.url || '';\n var extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nvar MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(function (resolve) {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n var canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = \"position: fixed; left: 0; top: 0; width: \".concat(MEASURE_SIZE, \"px; height: \").concat(MEASURE_SIZE, \"px; z-index: 9999; display: none;\");\n document.body.appendChild(canvas);\n var ctx = canvas.getContext('2d');\n var img = new Image();\n img.onload = function () {\n var width = img.width,\n height = img.height;\n var drawWidth = MEASURE_SIZE;\n var drawHeight = MEASURE_SIZE;\n var offsetX = 0;\n var offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n var dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n window.URL.revokeObjectURL(img.src);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n var reader = new FileReader();\n reader.onload = function () {\n if (reader.result) img.src = reader.result;\n };\n reader.readAsDataURL(file);\n } else if (file.type.startsWith('image/gif')) {\n var _reader = new FileReader();\n _reader.onload = function () {\n if (_reader.result) resolve(_reader.result);\n };\n _reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","// This icon file is generated automatically.\nvar DeleteOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\" } }] }, \"name\": \"delete\", \"theme\": \"outlined\" };\nexport default DeleteOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DeleteOutlinedSvg from \"@ant-design/icons-svg/es/asn/DeleteOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DeleteOutlined = function DeleteOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DeleteOutlinedSvg\n }));\n};\nDeleteOutlined.displayName = 'DeleteOutlined';\nexport default /*#__PURE__*/React.forwardRef(DeleteOutlined);","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\nDownloadOutlined.displayName = 'DownloadOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownloadOutlined);","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\nEyeOutlined.displayName = 'EyeOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeOutlined);","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\nCheckOutlined.displayName = 'CheckOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n trailColor: '#D9D9D9',\n trailWidth: 1,\n gapPosition: 'bottom'\n};\nexport var useTransitionDuration = function useTransitionDuration() {\n var pathsRef = useRef([]);\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n pathsRef.current.forEach(function (path) {\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return pathsRef.current;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n className = _defaultProps$props.className,\n percent = _defaultProps$props.percent,\n prefixCls = _defaultProps$props.prefixCls,\n strokeColor = _defaultProps$props.strokeColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n strokeWidth = _defaultProps$props.strokeWidth,\n style = _defaultProps$props.style,\n trailColor = _defaultProps$props.trailColor,\n trailWidth = _defaultProps$props.trailWidth,\n transition = _defaultProps$props.transition,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n // eslint-disable-next-line no-param-reassign\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n var paths = useTransitionDuration();\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n default:\n dashPercent = 1;\n break;\n }\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n },\n style: pathStyle\n });\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n Line.displayName = 'Line';\n}\nexport default Line;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"steps\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { defaultProps, useTransitionDuration } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nvar VIEW_BOX_SIZE = 100;\nvar getCircleStyle = function getCircleStyle(perimeter, perimeterWithoutGap, offset, percent, rotateDeg, gapDegree, gapPosition, strokeColor, strokeLinecap, strokeWidth) {\n var stepSpace = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;\n var offsetDeg = offset / 100 * 360 * ((360 - gapDegree) / 360);\n var positionDeg = gapDegree === 0 ? 0 : {\n bottom: 0,\n top: 180,\n left: 90,\n right: -90\n }[gapPosition];\n var strokeDashoffset = (100 - percent) / 100 * perimeterWithoutGap;\n // Fix percent accuracy when strokeLinecap is round\n // https://github.com/ant-design/ant-design/issues/35009\n if (strokeLinecap === 'round' && percent !== 100) {\n strokeDashoffset += strokeWidth / 2;\n // when percent is small enough (<= 1%), keep smallest value to avoid it's disappearance\n if (strokeDashoffset >= perimeterWithoutGap) {\n strokeDashoffset = perimeterWithoutGap - 0.01;\n }\n }\n return {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(perimeterWithoutGap, \"px \").concat(perimeter),\n strokeDashoffset: strokeDashoffset + stepSpace,\n transform: \"rotate(\".concat(rotateDeg + offsetDeg + positionDeg, \"deg)\"),\n transformOrigin: '0 0',\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s',\n fillOpacity: 0\n };\n};\nvar Circle = function Circle(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n id = _defaultProps$props.id,\n prefixCls = _defaultProps$props.prefixCls,\n steps = _defaultProps$props.steps,\n strokeWidth = _defaultProps$props.strokeWidth,\n trailWidth = _defaultProps$props.trailWidth,\n _defaultProps$props$g = _defaultProps$props.gapDegree,\n gapDegree = _defaultProps$props$g === void 0 ? 0 : _defaultProps$props$g,\n gapPosition = _defaultProps$props.gapPosition,\n trailColor = _defaultProps$props.trailColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n style = _defaultProps$props.style,\n className = _defaultProps$props.className,\n strokeColor = _defaultProps$props.strokeColor,\n percent = _defaultProps$props.percent,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var radius = VIEW_BOX_SIZE / 2 - strokeWidth / 2;\n var perimeter = Math.PI * 2 * radius;\n var rotateDeg = gapDegree > 0 ? 90 + gapDegree / 2 : -90;\n var perimeterWithoutGap = perimeter * ((360 - gapDegree) / 360);\n var _ref = _typeof(steps) === 'object' ? steps : {\n count: steps,\n space: 2\n },\n stepCount = _ref.count,\n stepSpace = _ref.space;\n var circleStyle = getCircleStyle(perimeter, perimeterWithoutGap, 0, 100, rotateDeg, gapDegree, gapPosition, trailColor, strokeLinecap, strokeWidth);\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var paths = useTransitionDuration();\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, ptg, rotateDeg, gapDegree, gapPosition, color, strokeLinecap, strokeWidth);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n paths[index] = elem;\n }\n });\n }).reverse();\n };\n var getStepStokeList = function getStepStokeList() {\n // only show the first percent when pass steps\n var current = Math.round(stepCount * (percentList[0] / 100));\n var stepPtg = 100 / stepCount;\n var stackPtg = 0;\n return new Array(stepCount).fill(null).map(function (_, index) {\n var color = index <= current - 1 ? strokeColorList[0] : trailColor;\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, stepPtg, rotateDeg, gapDegree, gapPosition, color, 'butt', strokeWidth, stepSpace);\n stackPtg += (perimeterWithoutGap - circleStyleForStack.strokeDashoffset + stepSpace) * 100 / perimeterWithoutGap;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: stroke\n // strokeLinecap={strokeLinecap}\n ,\n strokeWidth: strokeWidth,\n opacity: 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n paths[index] = elem;\n }\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"\".concat(-VIEW_BOX_SIZE / 2, \" \").concat(-VIEW_BOX_SIZE / 2, \" \").concat(VIEW_BOX_SIZE, \" \").concat(VIEW_BOX_SIZE),\n style: style,\n id: id,\n role: \"presentation\"\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: gradientId,\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), !stepCount && /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n r: radius,\n cx: 0,\n cy: 0,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n style: circleStyle\n }), stepCount ? getStepStokeList() : getStokeList());\n};\nif (process.env.NODE_ENV !== 'production') {\n Circle.displayName = 'Circle';\n}\nexport default Circle;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\nfunction getUUID() {\n var retId;\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default (function (id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\n});","import warning from '../_util/warning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n var success = _ref.success,\n successPercent = _ref.successPercent;\n var percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.') : void 0;\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { Circle as RCCircle } from 'rc-progress';\nimport * as React from 'react';\nimport { getSuccessPercent, validProgress } from './utils';\nfunction getPercentage(_ref) {\n var percent = _ref.percent,\n success = _ref.success,\n successPercent = _ref.successPercent;\n var realSuccessPercent = validProgress(getSuccessPercent({\n success: success,\n successPercent: successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n}\nfunction getStrokeColor(_ref2) {\n var _ref2$success = _ref2.success,\n success = _ref2$success === void 0 ? {} : _ref2$success,\n strokeColor = _ref2.strokeColor;\n var successColor = success.strokeColor;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n}\nvar Circle = function Circle(props) {\n var prefixCls = props.prefixCls,\n width = props.width,\n strokeWidth = props.strokeWidth,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n _props$strokeLinecap = props.strokeLinecap,\n strokeLinecap = _props$strokeLinecap === void 0 ? 'round' : _props$strokeLinecap,\n gapPosition = props.gapPosition,\n gapDegree = props.gapDegree,\n type = props.type,\n children = props.children,\n success = props.success;\n var circleSize = width || 120;\n var circleStyle = {\n width: circleSize,\n height: circleSize,\n fontSize: circleSize * 0.15 + 6\n };\n var circleWidth = strokeWidth || 6;\n var gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined;\n var getGapDegree = function getGapDegree() {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n };\n // using className to style stroke color\n var isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n var strokeColor = getStrokeColor({\n success: success,\n strokeColor: props.strokeColor\n });\n var wrapperClassName = classNames(\"\".concat(prefixCls, \"-inner\"), _defineProperty({}, \"\".concat(prefixCls, \"-circle-gradient\"), isGradient));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: circleWidth,\n trailWidth: circleWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: getGapDegree(),\n gapPosition: gapPos\n }), children);\n};\nexport default Circle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport * as React from 'react';\nimport { getSuccessPercent, validProgress } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\nexport var sortGradient = function sortGradient(gradients) {\n var tempArr = [];\n Object.keys(gradients).forEach(function (key) {\n var formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort(function (a, b) {\n return a.key - b.key;\n });\n return tempArr.map(function (_ref) {\n var key = _ref.key,\n value = _ref.value;\n return \"\".concat(value, \" \").concat(key, \"%\");\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport var handleGradient = function handleGradient(strokeColor, directionConfig) {\n var _strokeColor$from = strokeColor.from,\n from = _strokeColor$from === void 0 ? presetPrimaryColors.blue : _strokeColor$from,\n _strokeColor$to = strokeColor.to,\n to = _strokeColor$to === void 0 ? presetPrimaryColors.blue : _strokeColor$to,\n _strokeColor$directio = strokeColor.direction,\n direction = _strokeColor$directio === void 0 ? directionConfig === 'rtl' ? 'to left' : 'to right' : _strokeColor$directio,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n var sortedGradients = sortGradient(rest);\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(sortedGradients, \")\")\n };\n }\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(from, \", \").concat(to, \")\")\n };\n};\nvar Line = function Line(props) {\n var prefixCls = props.prefixCls,\n directionConfig = props.direction,\n percent = props.percent,\n strokeWidth = props.strokeWidth,\n size = props.size,\n strokeColor = props.strokeColor,\n _props$strokeLinecap = props.strokeLinecap,\n strokeLinecap = _props$strokeLinecap === void 0 ? 'round' : _props$strokeLinecap,\n children = props.children,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n success = props.success;\n var backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n background: strokeColor\n };\n var borderRadius = strokeLinecap === 'square' || strokeLinecap === 'butt' ? 0 : undefined;\n var trailStyle = {\n backgroundColor: trailColor || undefined,\n borderRadius: borderRadius\n };\n var percentStyle = _extends({\n width: \"\".concat(validProgress(percent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: borderRadius\n }, backgroundProps);\n var successPercent = getSuccessPercent(props);\n var successPercentStyle = {\n width: \"\".concat(validProgress(successPercent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: borderRadius,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n var successSegment = successPercent !== undefined ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-success-bg\"),\n style: successPercentStyle\n })) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-outer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-bg\"),\n style: percentStyle\n }), successSegment)), children);\n};\nexport default Line;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Steps = function Steps(props) {\n var size = props.size,\n steps = props.steps,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$strokeWidth = props.strokeWidth,\n strokeWidth = _props$strokeWidth === void 0 ? 8 : _props$strokeWidth,\n strokeColor = props.strokeColor,\n _props$trailColor = props.trailColor,\n trailColor = _props$trailColor === void 0 ? null : _props$trailColor,\n prefixCls = props.prefixCls,\n children = props.children;\n var current = Math.round(steps * (percent / 100));\n var stepWidth = size === 'small' ? 2 : 14;\n var styledSteps = new Array(steps);\n for (var i = 0; i < steps; i++) {\n var color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n styledSteps[i] = /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(\"\".concat(prefixCls, \"-steps-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-steps-item-active\"), i <= current - 1)),\n style: {\n backgroundColor: i <= current - 1 ? color : trailColor,\n width: stepWidth,\n height: strokeWidth\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-steps-outer\")\n }, styledSteps, children);\n};\nexport default Steps;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport Circle from './Circle';\nimport Line from './Line';\nimport Steps from './Steps';\nimport { getSuccessPercent, validProgress } from './utils';\nvar ProgressTypes = tuple('line', 'circle', 'dashboard');\nvar ProgressStatuses = tuple('normal', 'exception', 'active', 'success');\nvar Progress = function Progress(props) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n steps = props.steps,\n strokeColor = props.strokeColor,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$size = props.size,\n size = _props$size === void 0 ? 'default' : _props$size,\n _props$showInfo = props.showInfo,\n showInfo = _props$showInfo === void 0 ? true : _props$showInfo,\n _props$type = props.type,\n type = _props$type === void 0 ? 'line' : _props$type,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"steps\", \"strokeColor\", \"percent\", \"size\", \"showInfo\", \"type\"]);\n function getPercentNumber() {\n var successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n }\n function getProgressStatus() {\n var status = props.status;\n if (!ProgressStatuses.includes(status) && getPercentNumber() >= 100) {\n return 'success';\n }\n return status || 'normal';\n }\n function renderProcessInfo(prefixCls, progressStatus) {\n var format = props.format;\n var successPercent = getSuccessPercent(props);\n if (!showInfo) {\n return null;\n }\n var text;\n var textFormatter = format || function (percentNumber) {\n return \"\".concat(percentNumber, \"%\");\n };\n var isLineType = type === 'line';\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\"),\n title: typeof text === 'string' ? text : undefined\n }, text);\n }\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('progress', customizePrefixCls);\n var progressStatus = getProgressStatus();\n var progressInfo = renderProcessInfo(prefixCls, progressStatus);\n process.env.NODE_ENV !== \"production\" ? warning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.') : void 0;\n var strokeColorNotArray = Array.isArray(strokeColor) ? strokeColor[0] : strokeColor;\n var strokeColorNotGradient = typeof strokeColor === 'string' || Array.isArray(strokeColor) ? strokeColor : undefined;\n var progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? ( /*#__PURE__*/React.createElement(Steps, _extends({}, props, {\n strokeColor: strokeColorNotGradient,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo)) : ( /*#__PURE__*/React.createElement(Line, _extends({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo));\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, _extends({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n var classString = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type === 'dashboard' && 'circle' || steps && 'steps' || type), true), \"\".concat(prefixCls, \"-status-\").concat(progressStatus), true), \"\".concat(prefixCls, \"-show-info\"), showInfo), \"\".concat(prefixCls, \"-\").concat(size), size), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, omit(restProps, ['status', 'format', 'trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'success', 'successPercent']), {\n className: classString,\n role: \"progressbar\"\n }), progress);\n};\nexport default Progress;","import Progress from './progress';\nexport default Progress;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\n\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n showArrow = props.showArrow,\n restProps = _objectWithoutProperties(props, [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"]);\n\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n\n var extraProps = _objectSpread({}, restProps);\n\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n\n var destroyTooltip = false;\n var autoDestroy = false;\n\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\n\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning');\n// eslint-disable-next-line import/prefer-default-export\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 4 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow,\n arrowPointAtCenter = config.arrowPointAtCenter;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isValidElement, isFragment } from '../_util/reactNode';\nimport warning from '../_util/warning';\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n var omitted = _extends({}, obj);\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n return element;\n}\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n }\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onOpenChange = function onOpenChange(vis) {\n var _a, _b;\n setOpen(isNoTitle() ? false : vis);\n if (!isNoTitle()) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n _props$arrowPointAtCe = props.arrowPointAtCenter,\n arrowPointAtCenter = _props$arrowPointAtCe === void 0 ? false : _props$arrowPointAtCe,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n };\n // 动态设置动画点\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements();\n // 当前返回的位置\n var placement = Object.keys(placements).find(function (key) {\n var _a, _b;\n return placements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && placements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (!placement) {\n return;\n }\n // 根据当前坐标设置动画点\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n };\n var getPopupContainer = props.getPopupContainer,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\"]);\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && isNoTitle()) {\n tempOpen = false;\n }\n var child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true)) : childProps.className;\n var customOverlayClassName = classNames(overlayClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)));\n var formattedOverlayInnerStyle = overlayInnerStyle;\n var arrowContentStyle = {};\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n // @ts-ignore\n arrowContentStyle = {\n '--antd-arrow-background-color': color\n };\n }\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, otherProps, {\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n }\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons/es/icons/DownloadOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport Progress from '../../progress';\nimport Tooltip from '../../tooltip';\nvar ListItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n locale = _ref.locale,\n listType = _ref.listType,\n file = _ref.file,\n items = _ref.items,\n progressProps = _ref.progress,\n iconRender = _ref.iconRender,\n actionIconRender = _ref.actionIconRender,\n itemRender = _ref.itemRender,\n isImgUrl = _ref.isImgUrl,\n showPreviewIcon = _ref.showPreviewIcon,\n showRemoveIcon = _ref.showRemoveIcon,\n showDownloadIcon = _ref.showDownloadIcon,\n customPreviewIcon = _ref.previewIcon,\n customRemoveIcon = _ref.removeIcon,\n customDownloadIcon = _ref.downloadIcon,\n onPreview = _ref.onPreview,\n onDownload = _ref.onDownload,\n onClose = _ref.onClose;\n var _a, _b;\n // Status: which will ignore `removed` status\n var status = file.status;\n var _React$useState = React.useState(status),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mergedStatus = _React$useState2[0],\n setMergedStatus = _React$useState2[1];\n React.useEffect(function () {\n if (status !== 'removed') {\n setMergedStatus(status);\n }\n }, [status]);\n // Delay to show the progress bar\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n showProgress = _React$useState4[0],\n setShowProgress = _React$useState4[1];\n var progressRafRef = React.useRef(null);\n React.useEffect(function () {\n progressRafRef.current = setTimeout(function () {\n setShowProgress(true);\n }, 300);\n return function () {\n if (progressRafRef.current) {\n clearTimeout(progressRafRef.current);\n }\n };\n }, []);\n // This is used for legacy span make scrollHeight the wrong value.\n // We will force these to be `display: block` with non `picture-card`\n var spanClassName = \"\".concat(prefixCls, \"-span\");\n var iconNode = iconRender(file);\n var icon = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-text-icon\")\n }, iconNode);\n if (listType === 'picture' || listType === 'picture-card') {\n if (mergedStatus === 'uploading' || !file.thumbUrl && !file.url) {\n var uploadingClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item-thumbnail\"), true), \"\".concat(prefixCls, \"-list-item-file\"), mergedStatus !== 'uploading'));\n icon = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadingClassName\n }, iconNode);\n } else {\n var thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? ( /*#__PURE__*/React.createElement(\"img\", {\n src: file.thumbUrl || file.url,\n alt: file.name,\n className: \"\".concat(prefixCls, \"-list-item-image\"),\n crossOrigin: file.crossOrigin\n })) : iconNode;\n var aClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item-thumbnail\"), true), \"\".concat(prefixCls, \"-list-item-file\"), isImgUrl && !isImgUrl(file)));\n icon = /*#__PURE__*/React.createElement(\"a\", {\n className: aClassName,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, thumbnail);\n }\n }\n var infoUploadingClass = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list-item\"), true), \"\".concat(prefixCls, \"-list-item-\").concat(mergedStatus), true), \"\".concat(prefixCls, \"-list-item-list-type-\").concat(listType), true));\n var linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n var removeIcon = showRemoveIcon ? actionIconRender((typeof customRemoveIcon === 'function' ? customRemoveIcon(file) : customRemoveIcon) || ( /*#__PURE__*/React.createElement(DeleteOutlined, null)), function () {\n return onClose(file);\n }, prefixCls, locale.removeFile) : null;\n var downloadIcon = showDownloadIcon && mergedStatus === 'done' ? actionIconRender((typeof customDownloadIcon === 'function' ? customDownloadIcon(file) : customDownloadIcon) || /*#__PURE__*/React.createElement(DownloadOutlined, null), function () {\n return onDownload(file);\n }, prefixCls, locale.downloadFile) : null;\n var downloadOrDelete = listType !== 'picture-card' && ( /*#__PURE__*/React.createElement(\"span\", {\n key: \"download-delete\",\n className: classNames(\"\".concat(prefixCls, \"-list-item-card-actions\"), {\n picture: listType === 'picture'\n })\n }, downloadIcon, removeIcon));\n var listItemNameClass = classNames(\"\".concat(prefixCls, \"-list-item-name\"));\n var preview = file.url ? [/*#__PURE__*/React.createElement(\"a\", _extends({\n key: \"view\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: listItemNameClass,\n title: file.name\n }, linkProps, {\n href: file.url,\n onClick: function onClick(e) {\n return onPreview(file, e);\n }\n }), file.name), downloadOrDelete] : [/*#__PURE__*/React.createElement(\"span\", {\n key: \"view\",\n className: listItemNameClass,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n title: file.name\n }, file.name), downloadOrDelete];\n var previewStyle = {\n pointerEvents: 'none',\n opacity: 0.5\n };\n var previewIcon = showPreviewIcon ? ( /*#__PURE__*/React.createElement(\"a\", {\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: file.url || file.thumbUrl ? undefined : previewStyle,\n onClick: function onClick(e) {\n return onPreview(file, e);\n },\n title: locale.previewFile\n }, typeof customPreviewIcon === 'function' ? customPreviewIcon(file) : customPreviewIcon || /*#__PURE__*/React.createElement(EyeOutlined, null))) : null;\n var actions = listType === 'picture-card' && mergedStatus !== 'uploading' && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-list-item-actions\")\n }, previewIcon, mergedStatus === 'done' && downloadIcon, removeIcon));\n var message;\n if (file.response && typeof file.response === 'string') {\n message = file.response;\n } else {\n message = ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n }\n var iconAndPreview = /*#__PURE__*/React.createElement(\"span\", {\n className: spanClassName\n }, icon, preview);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var rootPrefixCls = getPrefixCls();\n var dom = /*#__PURE__*/React.createElement(\"div\", {\n className: infoUploadingClass\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-list-item-info\")\n }, iconAndPreview), actions, showProgress && ( /*#__PURE__*/React.createElement(CSSMotion, {\n motionName: \"\".concat(rootPrefixCls, \"-fade\"),\n visible: mergedStatus === 'uploading',\n motionDeadline: 2000\n }, function (_ref2) {\n var motionClassName = _ref2.className;\n // show loading icon if upload progress listener is disabled\n var loadingProgress = 'percent' in file ? ( /*#__PURE__*/React.createElement(Progress, _extends({}, progressProps, {\n type: \"line\",\n percent: file.percent\n }))) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-list-item-progress\"), motionClassName)\n }, loadingProgress);\n })));\n var listContainerNameClass = classNames(\"\".concat(prefixCls, \"-list-\").concat(listType, \"-container\"), className);\n var item = mergedStatus === 'error' ? ( /*#__PURE__*/React.createElement(Tooltip, {\n title: message,\n getPopupContainer: function getPopupContainer(node) {\n return node.parentNode;\n }\n }, dom)) : dom;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listContainerNameClass,\n style: style,\n ref: ref\n }, itemRender ? itemRender(item, file, items, {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }) : item);\n});\nexport default ListItem;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport FileTwoTone from \"@ant-design/icons/es/icons/FileTwoTone\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons/es/icons/PictureTwoTone\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport Button from '../../button';\nimport { ConfigContext } from '../../config-provider';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport collapseMotion from '../../_util/motion';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\nvar listItemMotion = _extends({}, collapseMotion);\ndelete listItemMotion.onAppearEnd;\ndelete listItemMotion.onEnterEnd;\ndelete listItemMotion.onLeaveEnd;\nvar InternalUploadList = function InternalUploadList(props, ref) {\n var _props$listType = props.listType,\n listType = _props$listType === void 0 ? 'text' : _props$listType,\n _props$previewFile = props.previewFile,\n previewFile = _props$previewFile === void 0 ? previewImage : _props$previewFile,\n onPreview = props.onPreview,\n onDownload = props.onDownload,\n onRemove = props.onRemove,\n locale = props.locale,\n iconRender = props.iconRender,\n _props$isImageUrl = props.isImageUrl,\n isImgUrl = _props$isImageUrl === void 0 ? isImageUrl : _props$isImageUrl,\n customizePrefixCls = props.prefixCls,\n _props$items = props.items,\n items = _props$items === void 0 ? [] : _props$items,\n _props$showPreviewIco = props.showPreviewIcon,\n showPreviewIcon = _props$showPreviewIco === void 0 ? true : _props$showPreviewIco,\n _props$showRemoveIcon = props.showRemoveIcon,\n showRemoveIcon = _props$showRemoveIcon === void 0 ? true : _props$showRemoveIcon,\n _props$showDownloadIc = props.showDownloadIcon,\n showDownloadIcon = _props$showDownloadIc === void 0 ? false : _props$showDownloadIc,\n removeIcon = props.removeIcon,\n previewIcon = props.previewIcon,\n downloadIcon = props.downloadIcon,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? {\n strokeWidth: 2,\n showInfo: false\n } : _props$progress,\n appendAction = props.appendAction,\n _props$appendActionVi = props.appendActionVisible,\n appendActionVisible = _props$appendActionVi === void 0 ? true : _props$appendActionVi,\n itemRender = props.itemRender,\n disabled = props.disabled;\n var forceUpdate = useForceUpdate();\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n motionAppear = _React$useState2[0],\n setMotionAppear = _React$useState2[1];\n // ============================= Effect =============================\n React.useEffect(function () {\n if (listType !== 'picture' && listType !== 'picture-card') {\n return;\n }\n (items || []).forEach(function (file) {\n if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n if (previewFile) {\n previewFile(file.originFileObj).then(function (previewDataUrl) {\n // Need append '' to avoid dead loop\n file.thumbUrl = previewDataUrl || '';\n forceUpdate();\n });\n }\n });\n }, [listType, items, previewFile]);\n React.useEffect(function () {\n setMotionAppear(true);\n }, []);\n // ============================= Events =============================\n var onInternalPreview = function onInternalPreview(file, e) {\n if (!onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return onPreview(file);\n };\n var onInternalDownload = function onInternalDownload(file) {\n if (typeof onDownload === 'function') {\n onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n var onInternalClose = function onInternalClose(file) {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(file);\n };\n var internalIconRender = function internalIconRender(file) {\n if (iconRender) {\n return iconRender(file, listType);\n }\n var isLoading = file.status === 'uploading';\n var fileIcon = isImgUrl && isImgUrl(file) ? /*#__PURE__*/React.createElement(PictureTwoTone, null) : /*#__PURE__*/React.createElement(FileTwoTone, null);\n var icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PaperClipOutlined, null);\n if (listType === 'picture') {\n icon = isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : fileIcon;\n } else if (listType === 'picture-card') {\n icon = isLoading ? locale.uploading : fileIcon;\n }\n return icon;\n };\n var actionIconRender = function actionIconRender(customIcon, callback, prefixCls, title) {\n var btnProps = {\n type: 'text',\n size: 'small',\n title: title,\n disabled: disabled,\n onClick: function onClick(e) {\n callback();\n if (isValidElement(customIcon) && customIcon.props.onClick) {\n customIcon.props.onClick(e);\n }\n },\n className: \"\".concat(prefixCls, \"-list-item-card-actions-btn\")\n };\n if (isValidElement(customIcon)) {\n var btnIcon = cloneElement(customIcon, _extends(_extends({}, customIcon.props), {\n onClick: function onClick() {}\n }));\n return /*#__PURE__*/React.createElement(Button, _extends({}, btnProps, {\n icon: btnIcon\n }));\n }\n return /*#__PURE__*/React.createElement(Button, _extends({}, btnProps), /*#__PURE__*/React.createElement(\"span\", null, customIcon));\n };\n // ============================== Ref ===============================\n // Test needs\n React.useImperativeHandle(ref, function () {\n return {\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n };\n });\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // ============================= Render =============================\n var prefixCls = getPrefixCls('upload', customizePrefixCls);\n var listClassNames = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-list\"), true), \"\".concat(prefixCls, \"-list-\").concat(listType), true), \"\".concat(prefixCls, \"-list-rtl\"), direction === 'rtl'));\n // >>> Motion config\n var motionKeyList = _toConsumableArray(items.map(function (file) {\n return {\n key: file.uid,\n file: file\n };\n }));\n var animationDirection = listType === 'picture-card' ? 'animate-inline' : 'animate';\n // const transitionName = list.length === 0 ? '' : `${prefixCls}-${animationDirection}`;\n var motionConfig = {\n motionDeadline: 2000,\n motionName: \"\".concat(prefixCls, \"-\").concat(animationDirection),\n keys: motionKeyList,\n motionAppear: motionAppear\n };\n if (listType !== 'picture-card') {\n motionConfig = _extends(_extends({}, listItemMotion), motionConfig);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listClassNames\n }, /*#__PURE__*/React.createElement(CSSMotionList, _extends({}, motionConfig, {\n component: false\n }), function (_ref) {\n var key = _ref.key,\n file = _ref.file,\n motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: key,\n locale: locale,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n file: file,\n items: items,\n progress: progress,\n listType: listType,\n isImgUrl: isImgUrl,\n showPreviewIcon: showPreviewIcon,\n showRemoveIcon: showRemoveIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: internalIconRender,\n actionIconRender: actionIconRender,\n itemRender: itemRender,\n onPreview: onInternalPreview,\n onDownload: onInternalDownload,\n onClose: onInternalClose\n });\n }), appendAction && ( /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionConfig, {\n visible: appendActionVisible,\n forceRender: true\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return cloneElement(appendAction, function (oriProps) {\n return {\n className: classNames(oriProps.className, motionClassName),\n style: _extends(_extends(_extends({}, motionStyle), {\n // prevent the element has hover css pseudo-class that may cause animation to end prematurely.\n pointerEvents: motionClassName ? 'none' : undefined\n }), oriProps.style)\n };\n });\n })));\n};\nvar UploadList = /*#__PURE__*/React.forwardRef(InternalUploadList);\nif (process.env.NODE_ENV !== 'production') {\n UploadList.displayName = 'UploadList';\n}\nexport default UploadList;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport classNames from 'classnames';\nimport RcUpload from 'rc-upload';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport UploadList from './UploadList';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nexport var LIST_IGNORE = \"__LIST_IGNORE_\".concat(Date.now(), \"__\");\nvar InternalUpload = function InternalUpload(props, ref) {\n var fileList = props.fileList,\n defaultFileList = props.defaultFileList,\n onRemove = props.onRemove,\n _props$showUploadList = props.showUploadList,\n showUploadList = _props$showUploadList === void 0 ? true : _props$showUploadList,\n _props$listType = props.listType,\n listType = _props$listType === void 0 ? 'text' : _props$listType,\n onPreview = props.onPreview,\n onDownload = props.onDownload,\n onChange = props.onChange,\n onDrop = props.onDrop,\n previewFile = props.previewFile,\n customDisabled = props.disabled,\n propLocale = props.locale,\n iconRender = props.iconRender,\n isImageUrl = props.isImageUrl,\n progress = props.progress,\n customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$type = props.type,\n type = _props$type === void 0 ? 'select' : _props$type,\n children = props.children,\n style = props.style,\n itemRender = props.itemRender,\n maxCount = props.maxCount,\n _props$data = props.data,\n data = _props$data === void 0 ? {} : _props$data,\n _props$multiple = props.multiple,\n multiple = _props$multiple === void 0 ? false : _props$multiple,\n _props$action = props.action,\n action = _props$action === void 0 ? '' : _props$action,\n _props$accept = props.accept,\n accept = _props$accept === void 0 ? '' : _props$accept,\n _props$supportServerR = props.supportServerRender,\n supportServerRender = _props$supportServerR === void 0 ? true : _props$supportServerR;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _useMergedState = useMergedState(defaultFileList || [], {\n value: fileList,\n postState: function postState(list) {\n return list !== null && list !== void 0 ? list : [];\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedFileList = _useMergedState2[0],\n setMergedFileList = _useMergedState2[1];\n var _React$useState = React.useState('drop'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragState = _React$useState2[0],\n setDragState = _React$useState2[1];\n var upload = React.useRef(null);\n process.env.NODE_ENV !== \"production\" ? warning('fileList' in props || !('value' in props), 'Upload', '`value` is not a valid prop, do you mean `fileList`?') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!('transformFile' in props), 'Upload', '`transformFile` is deprecated. Please use `beforeUpload` directly.') : void 0;\n // Control mode will auto fill file uid if not provided\n React.useMemo(function () {\n var timestamp = Date.now();\n (fileList || []).forEach(function (file, index) {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = \"__AUTO__\".concat(timestamp, \"_\").concat(index, \"__\");\n }\n });\n }, [fileList]);\n var onInternalChange = function onInternalChange(file, changedFileList, event) {\n var cloneList = _toConsumableArray(changedFileList);\n // Cut to match count\n if (maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (maxCount) {\n cloneList = cloneList.slice(0, maxCount);\n }\n // Prevent React18 auto batch since input[upload] trigger process at same time\n // which makes fileList closure problem\n flushSync(function () {\n setMergedFileList(cloneList);\n });\n var changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n flushSync(function () {\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo);\n });\n };\n var mergedBeforeUpload = function mergedBeforeUpload(file, fileListArgs) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var beforeUpload, transformFile, parsedFile, result;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n beforeUpload = props.beforeUpload, transformFile = props.transformFile;\n parsedFile = file;\n if (!beforeUpload) {\n _context.next = 13;\n break;\n }\n _context.next = 5;\n return beforeUpload(file, fileListArgs);\n case 5:\n result = _context.sent;\n if (!(result === false)) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", false);\n case 8:\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (!(result === LIST_IGNORE)) {\n _context.next = 12;\n break;\n }\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return _context.abrupt(\"return\", false);\n case 12:\n if (_typeof(result) === 'object' && result) {\n parsedFile = result;\n }\n case 13:\n if (!transformFile) {\n _context.next = 17;\n break;\n }\n _context.next = 16;\n return transformFile(parsedFile);\n case 16:\n parsedFile = _context.sent;\n case 17:\n return _context.abrupt(\"return\", parsedFile);\n case 18:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n };\n var onBatchStart = function onBatchStart(batchFileInfoList) {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n var filteredFileInfoList = batchFileInfoList.filter(function (info) {\n return !info.file[LIST_IGNORE];\n });\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n var objectFileList = filteredFileInfoList.map(function (info) {\n return file2Obj(info.file);\n });\n // Concat new files with prev files\n var newFileList = _toConsumableArray(mergedFileList);\n objectFileList.forEach(function (fileObj) {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach(function (fileObj, index) {\n // Repeat trigger `onChange` event for compatible\n var triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n var originFileObj = fileObj.originFileObj;\n var clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (e) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n var onSuccess = function onSuccess(response, file, xhr) {\n try {\n if (typeof response === 'string') {\n response = JSON.parse(response);\n }\n } catch (e) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n var onProgress = function onProgress(e, file) {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList, e);\n };\n var onError = function onError(error, response, file) {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n var targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n var nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n var handleRemove = function handleRemove(file) {\n var currentFile;\n Promise.resolve(typeof onRemove === 'function' ? onRemove(file) : onRemove).then(function (ret) {\n var _a;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n var removedFileList = removeFileItem(file, mergedFileList);\n if (removedFileList) {\n currentFile = _extends(_extends({}, file), {\n status: 'removed'\n });\n mergedFileList === null || mergedFileList === void 0 ? void 0 : mergedFileList.forEach(function (item) {\n var matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_a = upload.current) === null || _a === void 0 ? void 0 : _a.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n var onFileDrop = function onFileDrop(e) {\n setDragState(e.type);\n if (e.type === 'drop') {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);\n }\n };\n // Test needs\n React.useImperativeHandle(ref, function () {\n return {\n onBatchStart: onBatchStart,\n onSuccess: onSuccess,\n onProgress: onProgress,\n onError: onError,\n fileList: mergedFileList,\n upload: upload.current\n };\n });\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('upload', customizePrefixCls);\n var rcUploadProps = _extends(_extends({\n onBatchStart: onBatchStart,\n onError: onError,\n onProgress: onProgress,\n onSuccess: onSuccess\n }, props), {\n data: data,\n multiple: multiple,\n action: action,\n accept: accept,\n supportServerRender: supportServerRender,\n prefixCls: prefixCls,\n disabled: mergedDisabled,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined\n });\n delete rcUploadProps.className;\n delete rcUploadProps.style;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!children || mergedDisabled) {\n delete rcUploadProps.id;\n }\n var renderUploadList = function renderUploadList(button, buttonVisible) {\n return showUploadList ? ( /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: 'Upload',\n defaultLocale: defaultLocale.Upload\n }, function (contextLocale) {\n var _ref = typeof showUploadList === 'boolean' ? {} : showUploadList,\n showRemoveIcon = _ref.showRemoveIcon,\n showPreviewIcon = _ref.showPreviewIcon,\n showDownloadIcon = _ref.showDownloadIcon,\n removeIcon = _ref.removeIcon,\n previewIcon = _ref.previewIcon,\n downloadIcon = _ref.downloadIcon;\n return /*#__PURE__*/React.createElement(UploadList, {\n prefixCls: prefixCls,\n listType: listType,\n items: mergedFileList,\n previewFile: previewFile,\n onPreview: onPreview,\n onDownload: onDownload,\n onRemove: handleRemove,\n showRemoveIcon: !mergedDisabled && showRemoveIcon,\n showPreviewIcon: showPreviewIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: iconRender,\n locale: _extends(_extends({}, contextLocale), propLocale),\n isImageUrl: isImageUrl,\n progress: progress,\n appendAction: button,\n appendActionVisible: buttonVisible,\n itemRender: itemRender,\n disabled: mergedDisabled\n });\n })) : button;\n };\n if (type === 'drag') {\n var dragCls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-drag\"), true), \"\".concat(prefixCls, \"-drag-uploading\"), mergedFileList.some(function (file) {\n return file.status === 'uploading';\n })), \"\".concat(prefixCls, \"-drag-hover\"), dragState === 'dragover'), \"\".concat(prefixCls, \"-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(\"div\", {\n className: dragCls,\n onDrop: onFileDrop,\n onDragOver: onFileDrop,\n onDragLeave: onFileDrop,\n style: style\n }, /*#__PURE__*/React.createElement(RcUpload, _extends({}, rcUploadProps, {\n ref: upload,\n className: \"\".concat(prefixCls, \"-btn\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-drag-container\")\n }, children))), renderUploadList());\n }\n var uploadButtonCls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-select\"), true), \"\".concat(prefixCls, \"-select-\").concat(listType), true), \"\".concat(prefixCls, \"-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var renderUploadButton = function renderUploadButton(uploadButtonStyle) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: uploadButtonCls,\n style: uploadButtonStyle\n }, /*#__PURE__*/React.createElement(RcUpload, _extends({}, rcUploadProps, {\n ref: upload\n })));\n };\n var uploadButton = renderUploadButton(children ? undefined : {\n display: 'none'\n });\n if (listType === 'picture-card') {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-picture-card-wrapper\"), className)\n }, renderUploadList(uploadButton, !!children));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className\n }, uploadButton, renderUploadList());\n};\nvar Upload = /*#__PURE__*/React.forwardRef(InternalUpload);\nif (process.env.NODE_ENV !== 'production') {\n Upload.displayName = 'Upload';\n}\nexport default Upload;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Upload from './Upload';\nvar Dragger = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var style = _a.style,\n height = _a.height,\n restProps = __rest(_a, [\"style\", \"height\"]);\n return /*#__PURE__*/React.createElement(Upload, _extends({\n ref: ref\n }, restProps, {\n type: \"drag\",\n style: _extends(_extends({}, style), {\n height: height\n })\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Dragger.displayName = 'Dragger';\n}\nexport default Dragger;","import Dragger from './Dragger';\nimport InternalUpload, { LIST_IGNORE } from './Upload';\nvar Upload = InternalUpload;\nUpload.Dragger = Dragger;\nUpload.LIST_IGNORE = LIST_IGNORE;\nexport default Upload;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record;\n\n constructor(\n errors: ValidateError[],\n fields: Record,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target: T, source: Partial): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise;\n validate(source: Values, callback: ValidateCallback): Promise;\n validate(source: Values): Promise;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise).then) {\n (res as Promise).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(namePath, path, partialMatch);\n });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!namePath || !subNamePath) {\n return false;\n }\n if (!partialMatch && namePath.length !== subNamePath.length) {\n return false;\n }\n return subNamePath.every(function (nameUnit, i) {\n return namePath[i] === nameUnit;\n });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n\n // Register on init\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resetCount: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n });\n // ================================== Utils ==================================\n _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n });\n _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n if (!_this.mounted) return;\n\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n });\n // Event should only trigger when meta changed\n _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, _meta)) {\n onMetaChange(_meta);\n }\n _this.metaCache = _meta;\n } else {\n _this.metaCache = null;\n }\n });\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n var data = info.data;\n if (namePathMatch) {\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n // Contains path with value should also check\n _this.reRender();\n return;\n }\n\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (_this.mounted) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 2:\n _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n\n // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n if (!(validateDebounce && triggerName)) {\n _context.next = 10;\n break;\n }\n _context.next = 8;\n return new Promise(function (resolve) {\n setTimeout(resolve, validateDebounce);\n });\n case 8:\n if (!(_this.validatePromise !== rootPromise)) {\n _context.next = 10;\n break;\n }\n return _context.abrupt(\"return\", []);\n case 10:\n promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n var warningOnly = _ref4.rule.warningOnly,\n _ref4$errors = _ref4.errors,\n errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return _context.abrupt(\"return\", promise);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n })));\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n return !!_this.validatePromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n return _this.touched;\n });\n _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n });\n _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n return _this.errors;\n });\n _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n return _this.warnings;\n });\n _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n return _this.props.isListField;\n });\n _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n return _this.props.isList;\n });\n _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n return _this.props.preserve;\n });\n // ============================= Child Component =============================\n _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n });\n // Only return validate child node. If invalidate, will do nothing about field.\n _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n // Support render props\n if (typeof children === 'function') {\n var _meta2 = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n });\n // ============================== Field Control ==============================\n _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n });\n _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n });\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n trigger: 'onChange',\n valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n var name = _ref6.name,\n restProps = _objectWithoutProperties(_ref6, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n _defineProperty(this, \"kvs\", new Map());\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n _defineProperty(this, \"formHooked\", false);\n _defineProperty(this, \"forceRootUpdate\", void 0);\n _defineProperty(this, \"subscribable\", true);\n _defineProperty(this, \"store\", {});\n _defineProperty(this, \"fieldEntities\", []);\n _defineProperty(this, \"initialValues\", {});\n _defineProperty(this, \"callbacks\", {});\n _defineProperty(this, \"validateMessages\", null);\n _defineProperty(this, \"preserve\", null);\n _defineProperty(this, \"lastValidatePromise\", null);\n _defineProperty(this, \"getForm\", function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n });\n // ======================== Internal Hooks ========================\n _defineProperty(this, \"getInternalHooks\", function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n });\n _defineProperty(this, \"useSubscribe\", function (subscribable) {\n _this.subscribable = subscribable;\n });\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n _defineProperty(this, \"prevWithoutPreserves\", null);\n /**\n * First time `setInitialValues` should update store with initial value\n */\n _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n });\n _defineProperty(this, \"destroyForm\", function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n });\n _defineProperty(this, \"getInitialValue\", function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n });\n _defineProperty(this, \"setCallbacks\", function (callbacks) {\n _this.callbacks = callbacks;\n });\n _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n _this.validateMessages = validateMessages;\n });\n _defineProperty(this, \"setPreserve\", function (preserve) {\n _this.preserve = preserve;\n });\n // ============================= Watch ============================\n _defineProperty(this, \"watchList\", []);\n _defineProperty(this, \"registerWatch\", function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n });\n _defineProperty(this, \"notifyWatch\", function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n });\n // ========================== Dev Warning =========================\n _defineProperty(this, \"timeoutId\", null);\n _defineProperty(this, \"warningUnhooked\", function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n });\n // ============================ Store =============================\n _defineProperty(this, \"updateStore\", function (nextStore) {\n _this.store = nextStore;\n });\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n _defineProperty(this, \"getFieldEntities\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n });\n _defineProperty(this, \"getFieldsMap\", function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n });\n _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n });\n _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n _this.warningUnhooked();\n\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _isListField, _ref3;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _isList, _ref2;\n if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n return;\n }\n } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n });\n _defineProperty(this, \"getFieldValue\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n });\n _defineProperty(this, \"getFieldsError\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n });\n _defineProperty(this, \"getFieldError\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n });\n _defineProperty(this, \"getFieldWarning\", function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n });\n _defineProperty(this, \"isFieldsTouched\", function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref4) {\n var value = _ref4.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n });\n _defineProperty(this, \"isFieldTouched\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n });\n _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n });\n _defineProperty(this, \"isFieldValidating\", function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n });\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n });\n _defineProperty(this, \"resetFields\", function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"setFields\", function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n });\n _defineProperty(this, \"getFields\", function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n });\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n _defineProperty(this, \"initEntityValue\", function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n });\n _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n });\n _defineProperty(this, \"registerField\", function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n });\n _defineProperty(this, \"dispatch\", function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n });\n _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref5) {\n var onStoreChange = _ref5.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n });\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n });\n _defineProperty(this, \"updateValue\", function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n });\n // Let all child Field get update.\n _defineProperty(this, \"setFieldsValue\", function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n });\n _defineProperty(this, \"setFieldValue\", function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n });\n _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n });\n _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref6) {\n var name = _ref6.name,\n errors = _ref6.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref7) {\n var fieldName = _ref7.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n });\n // =========================== Validate ===========================\n _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n var _options;\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n // Collect result in promise list\n var promiseList = [];\n\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n var recursive = (_options = options) === null || _options === void 0 ? void 0 : _options.recursive;\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref8) {\n var warningOnly = _ref8.rule.warningOnly,\n errors = _ref8.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref9) {\n var name = _ref9.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n });\n // ============================ Submit ============================\n _defineProperty(this, \"submit\", function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n });\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _getInternalHooks.useSubscribe,\n setInitialValues = _getInternalHooks.setInitialValues,\n setCallbacks = _getInternalHooks.setCallbacks,\n setValidateMessages = _getInternalHooks.setValidateMessages,\n setPreserve = _getInternalHooks.setPreserve,\n destroyForm = _getInternalHooks.destroyForm;\n\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var _values = formInstance.getFieldsValue(true);\n childrenNode = children(_values, formInstance);\n } else {\n childrenNode = children;\n }\n\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n\n // React 18 has the bug that will queue update twice even the value is not changed\n // ref: https://github.com/facebook/react/issues/27213\n if (value !== initialValue) {\n setValue(initialValue);\n }\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport var FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: function itemRef() {}\n});\nexport var NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport var FormProvider = function FormProvider(props) {\n var providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, _extends({}, providerProps));\n};\nexport var FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport var FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport var NoFormStyle = function NoFormStyle(_ref) {\n var children = _ref.children,\n status = _ref.status,\n override = _ref.override;\n var formItemInputContext = useContext(FormItemInputContext);\n var newFormItemInputContext = useMemo(function () {\n var newContext = _extends({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nvar Group = function Group(props) {\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className;\n var prefixCls = getPrefixCls('input-group', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), props.size === 'large'), \"\".concat(prefixCls, \"-sm\"), props.size === 'small'), \"\".concat(prefixCls, \"-compact\"), props.compact), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var formItemContext = useContext(FormItemInputContext);\n var groupFormItemContext = useMemo(function () {\n return _extends(_extends({}, formItemContext), {\n isFormItemInput: false\n });\n }, [formItemContext]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children));\n};\nexport default Group;","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n\n var event = e;\n\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true); // click clear icon\n\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n } // Trigger by composition event, this means we need force change the input value\n\n\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option); // Selection content\n\n var _ref = option || {},\n cursor = _ref.cursor;\n\n if (cursor) {\n var len = element.value.length;\n\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n\n case 'end':\n element.setSelectionRange(len, len);\n break;\n\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n\n return String(value);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React, { cloneElement, useRef } from 'react';\nimport classNames from 'classnames';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\n\nvar BaseInput = function BaseInput(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n affixWrapperClassName = props.affixWrapperClassName,\n groupClassName = props.groupClassName,\n wrapperClassName = props.wrapperClassName,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden;\n var containerRef = useRef(null);\n\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 ? void 0 : triggerFocus();\n }\n }; // ================== Clear Icon ================== //\n\n\n var getClearIcon = function getClearIcon() {\n var _classNames;\n\n if (!allowClear) {\n return null;\n }\n\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleReset // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames(clearIconCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(clearIconCls, \"-hidden\"), !needClear), _defineProperty(_classNames, \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix), _classNames)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n };\n\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: hidden\n }); // ================== Prefix & Suffix ================== //\n\n if (hasPrefixSuffix(props)) {\n var _classNames2;\n\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = classNames(affixWrapperPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), _defineProperty(_classNames2, \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), _classNames2), !hasAddon(props) && className, affixWrapperClassName);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, getClearIcon(), suffix);\n element = /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: !hasAddon(props) && hidden,\n onClick: onInputClick,\n ref: containerRef\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), /*#__PURE__*/cloneElement(inputElement, {\n style: null,\n value: value,\n hidden: null\n }), suffixNode);\n } // ================== Addon ================== //\n\n\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, wrapperClassName);\n var mergedGroupClassName = classNames(\"\".concat(prefixCls, \"-group-wrapper\"), className, groupClassName); // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: mergedGroupClassName,\n style: style,\n hidden: hidden\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonBefore), /*#__PURE__*/cloneElement(element, {\n style: null,\n hidden: null\n }), addonAfter && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonAfter)));\n }\n\n return element;\n};\n\nexport default BaseInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"type\", \"inputClassName\"];\nimport React, { useRef, useState, forwardRef, useImperativeHandle, useEffect } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport omit from \"rc-util/es/omit\";\nimport { fixControlledValue, hasAddon, hasPrefixSuffix, resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var autoComplete = props.autoComplete,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPressEnter = props.onPressEnter,\n onKeyDown = props.onKeyDown,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n disabled = props.disabled,\n htmlSize = props.htmlSize,\n className = props.className,\n maxLength = props.maxLength,\n suffix = props.suffix,\n showCount = props.showCount,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n inputClassName = props.inputClassName,\n rest = _objectWithoutProperties(props, _excluded);\n\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n focused = _useState2[0],\n setFocused = _useState2[1];\n\n var inputRef = useRef(null);\n\n var focus = function focus(option) {\n if (inputRef.current) {\n triggerFocus(inputRef.current, option);\n }\n };\n\n useImperativeHandle(ref, function () {\n return {\n focus: focus,\n blur: function blur() {\n var _inputRef$current;\n\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();\n },\n setSelectionRange: function setSelectionRange(start, end, direction) {\n var _inputRef$current2;\n\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setSelectionRange(start, end, direction);\n },\n select: function select() {\n var _inputRef$current3;\n\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.select();\n },\n input: inputRef.current\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return prev && disabled ? false : prev;\n });\n }, [disabled]);\n\n var handleChange = function handleChange(e) {\n if (props.value === undefined) {\n setValue(e.target.value);\n }\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var handleKeyDown = function handleKeyDown(e) {\n if (onPressEnter && e.key === 'Enter') {\n onPressEnter(e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n\n var getInputElement = function getInputElement() {\n // Fix https://fb.me/react-unknown-prop\n var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear', // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'showCount', 'affixWrapperClassName', 'groupClassName', 'inputClassName', 'wrapperClassName', 'htmlSize']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: autoComplete\n }, otherProps, {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n className: classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), inputClassName, !hasAddon(props) && !hasPrefixSuffix(props) && className),\n ref: inputRef,\n size: htmlSize,\n type: type\n }));\n };\n\n var getSuffix = function getSuffix() {\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n\n if (suffix || showCount) {\n var val = fixControlledValue(value);\n\n var valueLength = _toConsumableArray(val).length;\n\n var dataCount = _typeof(showCount) === 'object' ? showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n return /*#__PURE__*/React.createElement(React.Fragment, null, !!showCount && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix))\n }, dataCount), suffix);\n }\n\n return null;\n };\n\n return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n prefixCls: prefixCls,\n className: className,\n inputElement: getInputElement(),\n handleReset: handleReset,\n value: fixControlledValue(value),\n focused: focused,\n triggerFocus: focus,\n suffix: getSuffix(),\n disabled: disabled\n }));\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport { tuple } from './type';\nvar InputStatuses = tuple('warning', 'error', '');\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-status-success\"), status === 'success'), \"\".concat(prefixCls, \"-status-warning\"), status === 'warning'), \"\".concat(prefixCls, \"-status-error\"), status === 'error'), \"\".concat(prefixCls, \"-status-validating\"), status === 'validating'), \"\".concat(prefixCls, \"-has-feedback\"), hasFeedback));\n}\nexport var getMergedStatus = function getMergedStatus(contextStatus, customStatus) {\n return customStatus || contextStatus;\n};","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n var removePasswordTimeoutRef = useRef([]);\n var removePasswordTimeout = function removePasswordTimeout() {\n removePasswordTimeoutRef.current.push(setTimeout(function () {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(function () {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return function () {\n return removePasswordTimeoutRef.current.forEach(function (timer) {\n if (timer) {\n clearTimeout(timer);\n }\n });\n };\n }, []);\n return removePasswordTimeout;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport { hasPrefixSuffix } from './utils';\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n var currentTarget = target.cloneNode(true);\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n customStatus = props.status,\n customSize = props.size,\n customDisabled = props.disabled,\n onBlur = props.onBlur,\n onFocus = props.onFocus,\n suffix = props.suffix,\n allowClear = props.allowClear,\n addonAfter = props.addonAfter,\n addonBefore = props.addonBefore,\n className = props.className,\n onChange = props.onChange,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n input = _React$useContext.input;\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n var inputRef = useRef(null);\n // ===================== Compact Item =====================\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n var inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n var prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(function () {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', \"When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ\") : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n var handleBlur = function handleBlur(e) {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleChange = function handleChange(e) {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n var suffixNode = (hasFeedback || suffix) && ( /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon));\n // Allow clear\n var mergedAllowClear;\n if (_typeof(allowClear) === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return /*#__PURE__*/React.createElement(RcInput, _extends({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled || undefined,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter))),\n addonBefore: addonBefore && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore))),\n inputClassName: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus)),\n affixWrapperClassName: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-affix-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback)),\n wrapperClassName: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-group-rtl\"), direction === 'rtl')),\n groupClassName: classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-group-wrapper-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-group-wrapper-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), getStatusClassNames(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback))\n }));\n});\nexport default Input;","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeInvisibleOutlinedSvg\n }));\n};\nEyeInvisibleOutlined.displayName = 'EyeInvisibleOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigConsumer } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nvar defaultIconRender = function defaultIconRender(visible) {\n return visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\n};\nvar ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nvar Password = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visibilityTogg = props.visibilityToggle,\n visibilityToggle = _props$visibilityTogg === void 0 ? true : _props$visibilityTogg;\n var visibilityControlled = _typeof(visibilityToggle) === 'object' && visibilityToggle.visible !== undefined;\n var _useState = useState(function () {\n return visibilityControlled ? visibilityToggle.visible : false;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n visible = _useState2[0],\n setVisible = _useState2[1];\n var inputRef = useRef(null);\n React.useEffect(function () {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n var removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n var onVisibleChange = function onVisibleChange() {\n var disabled = props.disabled;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(function (prevState) {\n var _a;\n var newState = !prevState;\n if (_typeof(visibilityToggle) === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n var getIcon = function getIcon(prefixCls) {\n var _props$action = props.action,\n action = _props$action === void 0 ? 'click' : _props$action,\n _props$iconRender = props.iconRender,\n iconRender = _props$iconRender === void 0 ? defaultIconRender : _props$iconRender;\n var iconTrigger = ActionMap[action] || '';\n var icon = iconRender(visible);\n var iconProps = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, iconTrigger, onVisibleChange), \"className\", \"\".concat(prefixCls, \"-icon\")), \"key\", 'passwordIcon'), \"onMouseDown\", function onMouseDown(e) {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n }), \"onMouseUp\", function onMouseUp(e) {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n });\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n var renderPassword = function renderPassword(_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var className = props.className,\n customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n size = props.size,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var prefixCls = getPrefixCls('input-password', customizePrefixCls);\n var suffixIcon = visibilityToggle && getIcon(prefixCls);\n var inputClassName = classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), !!size));\n var omittedProps = _extends(_extends({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n };\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, renderPassword);\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\nSearchOutlined.displayName = 'SearchOutlined';\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport Input from './Input';\nvar Search = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customizeInputPrefixCls = props.inputPrefixCls,\n className = props.className,\n customizeSize = props.size,\n suffix = props.suffix,\n _props$enterButton = props.enterButton,\n enterButton = _props$enterButton === void 0 ? false : _props$enterButton,\n addonAfter = props.addonAfter,\n loading = props.loading,\n disabled = props.disabled,\n customOnSearch = props.onSearch,\n customOnChange = props.onChange,\n onCompositionStart = props.onCompositionStart,\n onCompositionEnd = props.onCompositionEnd,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var contextSize = React.useContext(SizeContext);\n var composedRef = React.useRef(false);\n var prefixCls = getPrefixCls('input-search', customizePrefixCls);\n var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize;\n var size = compactSize || customizeSize || contextSize;\n var inputRef = React.useRef(null);\n var onChange = function onChange(e) {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n var onMouseDown = function onMouseDown(e) {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n var onSearch = function onSearch(e) {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n var onPressEnter = function onPressEnter(e) {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n var searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n var btnClassName = \"\".concat(prefixCls, \"-button\");\n var button;\n var enterButtonAsElement = enterButton || {};\n var isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, _extends({\n onMouseDown: onMouseDown,\n onClick: function onClick(e) {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size: size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n var cls = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(size), !!size), \"\".concat(prefixCls, \"-with-button\"), !!enterButton), className);\n var handleOnCompositionStart = function handleOnCompositionStart(e) {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var handleOnCompositionEnd = function handleOnCompositionEnd(e) {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, _extends({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport classNames from 'classnames';\nimport calculateAutoSizeStyle from './calculateNodeHeight';\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-textarea' : _props$prefixCls,\n onPressEnter = props.onPressEnter,\n defaultValue = props.defaultValue,\n value = props.value,\n autoSize = props.autoSize,\n onResize = props.onResize,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n onChange = props.onChange,\n onInternalAutoSize = props.onInternalAutoSize,\n restProps = _objectWithoutProperties(props, _excluded);\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ResizableTextArea from './ResizableTextArea';\nvar TextArea = /*#__PURE__*/function (_React$Component) {\n _inherits(TextArea, _React$Component);\n var _super = _createSuper(TextArea);\n function TextArea(props) {\n var _this;\n _classCallCheck(this, TextArea);\n _this = _super.call(this, props);\n _this.resizableTextArea = void 0;\n _this.focus = function () {\n _this.resizableTextArea.textArea.focus();\n };\n _this.saveTextArea = function (resizableTextArea) {\n _this.resizableTextArea = resizableTextArea;\n };\n _this.handleChange = function (e) {\n var onChange = _this.props.onChange;\n _this.setValue(e.target.value);\n if (onChange) {\n onChange(e);\n }\n };\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n onPressEnter = _this$props.onPressEnter,\n onKeyDown = _this$props.onKeyDown;\n if (e.keyCode === 13 && onPressEnter) {\n onPressEnter(e);\n }\n if (onKeyDown) {\n onKeyDown(e);\n }\n };\n var value = typeof props.value === 'undefined' || props.value === null ? props.defaultValue : props.value;\n _this.state = {\n value: value\n };\n return _this;\n }\n _createClass(TextArea, [{\n key: \"setValue\",\n value: function setValue(value, callback) {\n if (!('value' in this.props)) {\n this.setState({\n value: value\n }, callback);\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.resizableTextArea.textArea.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, this.props, {\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n ref: this.saveTextArea\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value\n };\n }\n return null;\n }\n }]);\n return TextArea;\n}(React.Component);\nexport { ResizableTextArea };\nexport default TextArea;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { FormItemInputContext } from '../form/context';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { tuple } from '../_util/type';\nvar ClearableInputType = tuple('text', 'input');\nfunction hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nvar ClearableLabeledInput = /*#__PURE__*/function (_React$Component) {\n _inherits(ClearableLabeledInput, _React$Component);\n var _super = _createSuper(ClearableLabeledInput);\n function ClearableLabeledInput() {\n _classCallCheck(this, ClearableLabeledInput);\n return _super.apply(this, arguments);\n }\n _createClass(ClearableLabeledInput, [{\n key: \"renderClearIcon\",\n value: function renderClearIcon(prefixCls) {\n var _this$props = this.props,\n value = _this$props.value,\n disabled = _this$props.disabled,\n readOnly = _this$props.readOnly,\n handleReset = _this$props.handleReset,\n suffix = _this$props.suffix;\n var needClear = !disabled && !readOnly && value;\n var className = \"\".concat(prefixCls, \"-clear-icon\");\n return /*#__PURE__*/React.createElement(CloseCircleFilled, {\n onClick: handleReset,\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(className, \"-hidden\"), !needClear), \"\".concat(className, \"-has-suffix\"), !!suffix), className),\n role: \"button\"\n });\n }\n }, {\n key: \"renderTextAreaWithClearIcon\",\n value: function renderTextAreaWithClearIcon(prefixCls, element, statusContext) {\n var _this$props2 = this.props,\n value = _this$props2.value,\n allowClear = _this$props2.allowClear,\n className = _this$props2.className,\n focused = _this$props2.focused,\n style = _this$props2.style,\n direction = _this$props2.direction,\n bordered = _this$props2.bordered,\n hidden = _this$props2.hidden,\n customStatus = _this$props2.status;\n var contextStatus = statusContext.status,\n hasFeedback = statusContext.hasFeedback;\n if (!allowClear) {\n return cloneElement(element, {\n value: value\n });\n }\n var affixWrapperCls = classNames(\"\".concat(prefixCls, \"-affix-wrapper\"), \"\".concat(prefixCls, \"-affix-wrapper-textarea-with-clear-btn\"), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), getMergedStatus(contextStatus, customStatus), hasFeedback), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), \"\".concat(className), !hasAddon(this.props) && className));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: affixWrapperCls,\n style: style,\n hidden: hidden\n }, cloneElement(element, {\n style: null,\n value: value\n }), this.renderClearIcon(prefixCls));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this = this;\n return /*#__PURE__*/React.createElement(FormItemInputContext.Consumer, null, function (statusContext) {\n var _this$props3 = _this.props,\n prefixCls = _this$props3.prefixCls,\n inputType = _this$props3.inputType,\n element = _this$props3.element;\n if (inputType === ClearableInputType[0]) {\n return _this.renderTextAreaWithClearIcon(prefixCls, element, statusContext);\n }\n });\n }\n }]);\n return ClearableLabeledInput;\n}(React.Component);\nexport default ClearableLabeledInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport ClearableLabeledInput from './ClearableLabeledInput';\nimport { fixControlledValue, resolveOnChange, triggerFocus } from './Input';\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n _a$showCount = _a.showCount,\n showCount = _a$showCount === void 0 ? false : _a$showCount,\n maxLength = _a.maxLength,\n className = _a.className,\n style = _a.style,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n onCompositionStart = _a.onCompositionStart,\n onCompositionEnd = _a.onCompositionEnd,\n onChange = _a.onChange,\n onFocus = _a.onFocus,\n onBlur = _a.onBlur,\n customStatus = _a.status,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"showCount\", \"maxLength\", \"className\", \"style\", \"size\", \"disabled\", \"onCompositionStart\", \"onCompositionEnd\", \"onChange\", \"onFocus\", \"onBlur\", \"status\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var _React$useContext2 = React.useContext(FormItemInputContext),\n contextStatus = _React$useContext2.status,\n hasFeedback = _React$useContext2.hasFeedback,\n isFormItemInput = _React$useContext2.isFormItemInput,\n feedbackIcon = _React$useContext2.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n var innerRef = React.useRef(null);\n var clearableInputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n compositing = _React$useState2[0],\n setCompositing = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var hidden = props.hidden;\n var handleSetValue = function handleSetValue(val, callback) {\n if (props.value === undefined) {\n setValue(val);\n callback === null || callback === void 0 ? void 0 : callback();\n }\n };\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n var _a;\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_a = oldCompositionValueRef.current) === null || _a === void 0 ? void 0 : _a.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n handleSetValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n React.useEffect(function () {\n setFocused(function (prev) {\n return !mergedDisabled && prev;\n });\n }, [mergedDisabled]);\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n var _a, _b, _c;\n handleSetValue('');\n (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n resolveOnChange((_c = (_b = innerRef.current) === null || _b === void 0 ? void 0 : _b.resizableTextArea) === null || _c === void 0 ? void 0 : _c.textArea, e, onChange);\n };\n var prefixCls = getPrefixCls('input', customizePrefixCls);\n React.useImperativeHandle(ref, function () {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: function focus(option) {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var textArea = /*#__PURE__*/React.createElement(RcTextArea, _extends({}, omit(props, ['allowClear']), {\n disabled: mergedDisabled,\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-borderless\"), !bordered), className, className && !showCount), \"\".concat(prefixCls, \"-sm\"), size === 'small' || customizeSize === 'small'), \"\".concat(prefixCls, \"-lg\"), size === 'large' || customizeSize === 'large'), getStatusClassNames(prefixCls, mergedStatus)),\n style: showCount ? {\n resize: style === null || style === void 0 ? void 0 : style.resize\n } : style,\n prefixCls: prefixCls,\n onCompositionStart: onInternalCompositionStart,\n onChange: handleChange,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onCompositionEnd: onInternalCompositionEnd,\n ref: innerRef\n }));\n var val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (props.value === null || props.value === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n // TextArea\n var textareaNode = /*#__PURE__*/React.createElement(ClearableLabeledInput, _extends({\n disabled: mergedDisabled,\n focused: focused\n }, props, {\n prefixCls: prefixCls,\n direction: direction,\n inputType: \"text\",\n value: val,\n element: textArea,\n handleReset: handleReset,\n ref: clearableInputRef,\n bordered: bordered,\n status: customStatus,\n style: showCount ? undefined : style\n }));\n // Only show text area wrapper when needed\n if (showCount || hasFeedback) {\n var valueLength = _toConsumableArray(val).length;\n var dataCount = '';\n if (_typeof(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n hidden: hidden,\n className: classNames(\"\".concat(prefixCls, \"-textarea\"), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-textarea-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-textarea-show-count\"), showCount), \"\".concat(prefixCls, \"-textarea-in-form-item\"), isFormItemInput), getStatusClassNames(\"\".concat(prefixCls, \"-textarea\"), mergedStatus, hasFeedback), className),\n style: style,\n \"data-count\": dataCount\n }, textareaNode, hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-textarea-suffix\")\n }, feedbackIcon));\n }\n return textareaNode;\n});\nexport default TextArea;","import Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nvar Input = InternalInput;\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n}\n\n// Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n}\n\n// Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\nfunction getHue(hsv, i, light) {\n var hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n var saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Number(saturation.toFixed(2));\n}\nfunction getValue(hsv, i, light) {\n var value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n if (value > 1) {\n value = 1;\n }\n return Number(value.toFixed(2));\n}\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n patterns.push(toHex(pColor));\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n patterns.push(_colorString);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5];\n\n // dark presetPalettes\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, function (match, g) {\n return g.toUpperCase();\n });\n}\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UploadOutlined = function UploadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UploadOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n UploadOutlined.displayName = 'UploadOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(UploadOutlined);","import { useState } from 'react';\nimport { Button, Card, Input, message, Upload } from 'antd';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport { addArtist } from '../../service/artist';\nimport { principalToAccountIdentifier } from '../../utils/principal';\nimport './index.less';\n\nconst AddArtist = (props: any) => {\n const { artistActor } = props.use_agent;\n\n const [whitelist, setWhitelist] = useState('');\n const [wrongWl, setWrongWl] = useState('');\n\n const [loading, setLoading] = useState(false);\n\n const onFinish = async () => {\n setLoading(true);\n try {\n let wrong = '';\n const target = whitelist.split(',').map((principal: string) => {\n try {\n return Principal.fromText(principal);\n } catch (err) {\n console.log(err);\n }\n wrong = wrong + principal + ',';\n setWrongWl(wrong);\n });\n await addArtist(artistActor)(target);\n message.success('Submit successfully');\n } catch (err) {\n console.error(err);\n message.error('something went wrong');\n }\n setLoading(false);\n };\n return (\n \n
Add Artist
\n
\n
Principal List
\n {\n let reader = new FileReader();\n reader.readAsText(file);\n reader.onloadend = () => {\n //@ts-ignore\n const wl = reader.result.replaceAll('\\r\\n', ',');\n setWhitelist(wl);\n };\n return false;\n }}\n >\n \n \n setWhitelist(e.target.value)}\n autoSize\n value={whitelist}\n />\n
\n\n \n Confirm\n \n\n {wrongWl.length > 0 ? (\n <>\n
Wrong Address
\n {wrongWl}\n \n ) : null}\n
\n );\n};\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(AddArtist);\n","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n var lockRef = React.useRef(null);\n var timeoutRef = React.useRef(null);\n\n // Clean up\n React.useEffect(function () {\n return function () {\n window.clearTimeout(timeoutRef.current);\n };\n }, []);\n function doLock(locked) {\n if (locked || lockRef.current === null) {\n lockRef.current = locked;\n }\n window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(function () {\n lockRef.current = null;\n }, duration);\n }\n return [function () {\n return lockRef.current;\n }, doLock];\n}","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\nexport default TransBtn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(_ref, ref) {\n var _inputNode2, _inputNode2$props;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n inputElement = _ref.inputElement,\n disabled = _ref.disabled,\n tabIndex = _ref.tabIndex,\n autoFocus = _ref.autoFocus,\n autoComplete = _ref.autoComplete,\n editable = _ref.editable,\n activeDescendantId = _ref.activeDescendantId,\n value = _ref.value,\n maxLength = _ref.maxLength,\n _onKeyDown = _ref.onKeyDown,\n _onMouseDown = _ref.onMouseDown,\n _onChange = _ref.onChange,\n onPaste = _ref.onPaste,\n _onCompositionStart = _ref.onCompositionStart,\n _onCompositionEnd = _ref.onCompositionEnd,\n open = _ref.open,\n attrs = _ref.attrs;\n var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n var _inputNode = inputNode,\n originRef = _inputNode.ref,\n originProps = _inputNode.props;\n var onOriginKeyDown = originProps.onKeyDown,\n onOriginChange = originProps.onChange,\n onOriginMouseDown = originProps.onMouseDown,\n onOriginCompositionStart = originProps.onCompositionStart,\n onOriginCompositionEnd = originProps.onCompositionEnd,\n style = originProps.style;\n warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n type: 'search'\n }, originProps), {}, {\n // Override over origin props\n id: id,\n ref: composeRef(ref, originRef),\n disabled: disabled,\n tabIndex: tabIndex,\n autoComplete: autoComplete || 'off',\n autoFocus: autoFocus,\n className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 ? void 0 : (_inputNode2$props = _inputNode2.props) === null || _inputNode2$props === void 0 ? void 0 : _inputNode2$props.className),\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-haspopup': 'listbox',\n 'aria-owns': \"\".concat(id, \"_list\"),\n 'aria-autocomplete': 'list',\n 'aria-controls': \"\".concat(id, \"_list\"),\n 'aria-activedescendant': activeDescendantId\n }, attrs), {}, {\n value: editable ? value : '',\n maxLength: maxLength,\n readOnly: !editable,\n unselectable: !editable ? 'on' : null,\n style: _objectSpread(_objectSpread({}, style), {}, {\n opacity: editable ? null : 0\n }),\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(event);\n if (onOriginKeyDown) {\n onOriginKeyDown(event);\n }\n },\n onMouseDown: function onMouseDown(event) {\n _onMouseDown(event);\n if (onOriginMouseDown) {\n onOriginMouseDown(event);\n }\n },\n onChange: function onChange(event) {\n _onChange(event);\n if (onOriginChange) {\n onOriginChange(event);\n }\n },\n onCompositionStart: function onCompositionStart(event) {\n _onCompositionStart(event);\n if (onOriginCompositionStart) {\n onOriginCompositionStart(event);\n }\n },\n onCompositionEnd: function onCompositionEnd(event) {\n _onCompositionEnd(event);\n if (onOriginCompositionEnd) {\n onOriginCompositionEnd(event);\n }\n },\n onPaste: onPaste\n }));\n return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nRefInput.displayName = 'Input';\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n return value !== undefined && value !== null;\n}\nfunction isTitleType(title) {\n return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n var title = undefined;\n if (item) {\n if (isTitleType(item.title)) {\n title = item.title.toString();\n } else if (isTitleType(item.label)) {\n title = item.label.toString();\n }\n }\n return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n var _value$key;\n return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n var id = props.id,\n prefixCls = props.prefixCls,\n values = props.values,\n open = props.open,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n inputRef = props.inputRef,\n placeholder = props.placeholder,\n disabled = props.disabled,\n mode = props.mode,\n showSearch = props.showSearch,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n maxTagCount = props.maxTagCount,\n maxTagTextLength = props.maxTagTextLength,\n _props$maxTagPlacehol = props.maxTagPlaceholder,\n maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n return \"+ \".concat(omittedValues.length, \" ...\");\n } : _props$maxTagPlacehol,\n tagRender = props.tagRender,\n onToggleOpen = props.onToggleOpen,\n onRemove = props.onRemove,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var measureRef = React.useRef(null);\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n inputWidth = _useState2[0],\n setInputWidth = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n // ===================== Search ======================\n var inputValue = open || mode === \"multiple\" && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n var inputEditable = mode === 'tags' || mode === \"multiple\" && autoClearSearchValue === false || showSearch && (open || focused);\n\n // We measure width and set to the input immediately\n useLayoutEffect(function () {\n setInputWidth(measureRef.current.scrollWidth);\n }, [inputValue]);\n\n // ===================== Render ======================\n // >>> Render Selector Node. Includes Item & Rest\n function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled)),\n title: getTitle(item)\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-item-content\")\n }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n onMouseDown: onPreventMouseDown,\n onClick: onClose,\n customizeIcon: removeIcon\n }, \"\\xD7\"));\n }\n function customizeRenderSelector(value, content, itemDisabled, closable, onClose) {\n var onMouseDown = function onMouseDown(e) {\n onPreventMouseDown(e);\n onToggleOpen(!open);\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: onMouseDown\n }, tagRender({\n label: content,\n value: value,\n disabled: itemDisabled,\n closable: closable,\n onClose: onClose\n }));\n }\n function renderItem(valueItem) {\n var itemDisabled = valueItem.disabled,\n label = valueItem.label,\n value = valueItem.value;\n var closable = !disabled && !itemDisabled;\n var displayLabel = label;\n if (typeof maxTagTextLength === 'number') {\n if (typeof label === 'string' || typeof label === 'number') {\n var strLabel = String(displayLabel);\n if (strLabel.length > maxTagTextLength) {\n displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n }\n }\n }\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(valueItem);\n };\n return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n }\n function renderRest(omittedValues) {\n var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n return defaultRenderSelector({\n title: content\n }, content, false);\n }\n\n // >>> Input Node\n var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(selectionPrefixCls, \"-search\"),\n style: {\n width: inputWidth\n },\n onFocus: function onFocus() {\n setFocused(true);\n },\n onBlur: function onBlur() {\n setFocused(false);\n }\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n open: open,\n prefixCls: prefixCls,\n id: id,\n inputElement: null,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: onInputChange,\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true)\n }), /*#__PURE__*/React.createElement(\"span\", {\n ref: measureRef,\n className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n \"aria-hidden\": true\n }, inputValue, \"\\xA0\"));\n\n // >>> Selections\n var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n data: values,\n renderItem: renderItem,\n renderRest: renderRest,\n suffix: inputNode,\n itemKey: itemKey,\n maxCount: maxTagCount\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n // Never happen in test env\n if (isBrowserClient) {\n /* istanbul ignore next */\n React.useLayoutEffect(effect, deps);\n } else {\n React.useEffect(effect, deps);\n }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n id = props.id,\n inputRef = props.inputRef,\n disabled = props.disabled,\n autoFocus = props.autoFocus,\n autoComplete = props.autoComplete,\n activeDescendantId = props.activeDescendantId,\n mode = props.mode,\n open = props.open,\n values = props.values,\n placeholder = props.placeholder,\n tabIndex = props.tabIndex,\n showSearch = props.showSearch,\n searchValue = props.searchValue,\n activeValue = props.activeValue,\n maxLength = props.maxLength,\n onInputKeyDown = props.onInputKeyDown,\n onInputMouseDown = props.onInputMouseDown,\n onInputChange = props.onInputChange,\n onInputPaste = props.onInputPaste,\n onInputCompositionStart = props.onInputCompositionStart,\n onInputCompositionEnd = props.onInputCompositionEnd;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputChanged = _React$useState2[0],\n setInputChanged = _React$useState2[1];\n var combobox = mode === 'combobox';\n var inputEditable = combobox || showSearch;\n var item = values[0];\n var inputValue = searchValue || '';\n if (combobox && activeValue && !inputChanged) {\n inputValue = activeValue;\n }\n React.useEffect(function () {\n if (combobox) {\n setInputChanged(false);\n }\n }, [combobox, activeValue]);\n\n // Not show text when closed expect combobox mode\n var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n // Get title\n var title = getTitle(item);\n var renderPlaceholder = function renderPlaceholder() {\n if (item) {\n return null;\n }\n var hiddenStyle = hasTextInput ? {\n visibility: 'hidden'\n } : undefined;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n style: hiddenStyle\n }, placeholder);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n ref: inputRef,\n prefixCls: prefixCls,\n id: id,\n open: open,\n inputElement: inputElement,\n disabled: disabled,\n autoFocus: autoFocus,\n autoComplete: autoComplete,\n editable: inputEditable,\n activeDescendantId: activeDescendantId,\n value: inputValue,\n onKeyDown: onInputKeyDown,\n onMouseDown: onInputMouseDown,\n onChange: function onChange(e) {\n setInputChanged(true);\n onInputChange(e);\n },\n onPaste: onInputPaste,\n onCompositionStart: onInputCompositionStart,\n onCompositionEnd: onInputCompositionEnd,\n tabIndex: tabIndex,\n attrs: pickAttrs(props, true),\n maxLength: combobox ? maxLength : undefined\n })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-item\"),\n title: title\n // 当 Select 已经选中选项时,还需 selection 隐藏但留在原地占位\n // https://github.com/ant-design/ant-design/issues/27688\n // https://github.com/ant-design/ant-design/issues/41530\n ,\n style: hasTextInput ? {\n visibility: 'hidden'\n } : undefined\n }, item.label) : null, renderPlaceholder());\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nvar Selector = function Selector(props, ref) {\n var inputRef = useRef(null);\n var compositionStatusRef = useRef(false);\n var prefixCls = props.prefixCls,\n open = props.open,\n mode = props.mode,\n showSearch = props.showSearch,\n tokenWithEnter = props.tokenWithEnter,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSubmit = props.onSearchSubmit,\n onToggleOpen = props.onToggleOpen,\n onInputKeyDown = props.onInputKeyDown,\n domRef = props.domRef;\n\n // ======================= Ref =======================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n inputRef.current.focus();\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ====================== Input ======================\n var _useLock = useLock(0),\n _useLock2 = _slicedToArray(_useLock, 2),\n getInputMouseDown = _useLock2[0],\n setInputMouseDown = _useLock2[1];\n var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n var which = event.which;\n if (which === KeyCode.UP || which === KeyCode.DOWN) {\n event.preventDefault();\n }\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n // When menu isn't open, OptionList won't trigger a value change\n // So when enter is pressed, the tag's input value should be emitted here to let selector know\n onSearchSubmit === null || onSearchSubmit === void 0 ? void 0 : onSearchSubmit(event.target.value);\n }\n if (isValidateOpenKey(which)) {\n onToggleOpen(true);\n }\n };\n\n /**\n * We can not use `findDOMNode` sine it will get warning,\n * have to use timer to check if is input element.\n */\n var onInternalInputMouseDown = function onInternalInputMouseDown() {\n setInputMouseDown(true);\n };\n\n // When paste come, ignore next onChange\n var pastedTextRef = useRef(null);\n var triggerOnSearch = function triggerOnSearch(value) {\n if (onSearch(value, true, compositionStatusRef.current) !== false) {\n onToggleOpen(true);\n }\n };\n var onInputCompositionStart = function onInputCompositionStart() {\n compositionStatusRef.current = true;\n };\n var onInputCompositionEnd = function onInputCompositionEnd(e) {\n compositionStatusRef.current = false;\n\n // Trigger search again to support `tokenSeparators` with typewriting\n if (mode !== 'combobox') {\n triggerOnSearch(e.target.value);\n }\n };\n var onInputChange = function onInputChange(event) {\n var value = event.target.value;\n\n // Pasted text should replace back to origin content\n if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n // CRLF will be treated as a single space for input element\n var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n value = value.replace(replacedText, pastedTextRef.current);\n }\n pastedTextRef.current = null;\n triggerOnSearch(value);\n };\n var onInputPaste = function onInputPaste(e) {\n var clipboardData = e.clipboardData;\n var value = clipboardData.getData('text');\n pastedTextRef.current = value;\n };\n var onClick = function onClick(_ref) {\n var target = _ref.target;\n if (target !== inputRef.current) {\n // Should focus input if click the selector\n var isIE = document.body.style.msTouchAction !== undefined;\n if (isIE) {\n setTimeout(function () {\n inputRef.current.focus();\n });\n } else {\n inputRef.current.focus();\n }\n }\n };\n var onMouseDown = function onMouseDown(event) {\n var inputMouseDown = getInputMouseDown();\n\n // when mode is combobox, don't prevent default behavior\n // https://github.com/ant-design/ant-design/issues/37320\n if (event.target !== inputRef.current && !inputMouseDown && mode !== 'combobox') {\n event.preventDefault();\n }\n if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n if (open && autoClearSearchValue !== false) {\n onSearch('', true, false);\n }\n onToggleOpen();\n }\n };\n\n // ================= Inner Selector ==================\n var sharedProps = {\n inputRef: inputRef,\n onInputKeyDown: onInternalInputKeyDown,\n onInputMouseDown: onInternalInputMouseDown,\n onInputChange: onInputChange,\n onInputPaste: onInputPaste,\n onInputCompositionStart: onInputCompositionStart,\n onInputCompositionEnd: onInputCompositionEnd\n };\n var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domRef,\n className: \"\".concat(prefixCls, \"-selector\"),\n onClick: onClick,\n onMouseDown: onMouseDown\n }, selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nForwardSelector.displayName = 'Selector';\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n return ![\n // System function button\n KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n // F1-F12\n KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"containerWidth\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n return {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: adjustX,\n adjustY: 1\n }\n }\n };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n var prefixCls = props.prefixCls,\n disabled = props.disabled,\n visible = props.visible,\n children = props.children,\n popupElement = props.popupElement,\n containerWidth = props.containerWidth,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n placement = props.placement,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n empty = props.empty,\n getTriggerDOMNode = props.getTriggerDOMNode,\n onPopupVisibleChange = props.onPopupVisibleChange,\n onPopupMouseEnter = props.onPopupMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var popupNode = popupElement;\n if (dropdownRender) {\n popupNode = dropdownRender(popupElement);\n }\n var builtInPlacements = React.useMemo(function () {\n return getBuiltInPlacements(dropdownMatchSelectWidth);\n }, [dropdownMatchSelectWidth]);\n\n // ===================== Motion ======================\n var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n // ======================= Ref =======================\n var popupRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n getPopupElement: function getPopupElement() {\n return popupRef.current;\n }\n };\n });\n var popupStyle = _objectSpread({\n minWidth: containerWidth\n }, dropdownStyle);\n if (typeof dropdownMatchSelectWidth === 'number') {\n popupStyle.width = dropdownMatchSelectWidth;\n } else if (dropdownMatchSelectWidth) {\n popupStyle.width = containerWidth;\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n showAction: onPopupVisibleChange ? ['click'] : [],\n hideAction: onPopupVisibleChange ? ['click'] : [],\n popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n builtinPlacements: builtInPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: mergedTransitionName,\n popup: /*#__PURE__*/React.createElement(\"div\", {\n ref: popupRef,\n onMouseEnter: onPopupMouseEnter\n }, popupNode),\n popupAlign: dropdownAlign,\n popupVisible: visible,\n getPopupContainer: getPopupContainer,\n popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n popupStyle: popupStyle,\n getTriggerDOMNode: getTriggerDOMNode,\n onPopupVisibleChange: onPopupVisibleChange\n }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nRefSelectTrigger.displayName = 'SelectTrigger';\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n if ('value' in data) {\n value = data.value;\n }\n if (key !== null && key !== undefined) {\n return key;\n }\n if (value !== undefined) {\n return value;\n }\n return \"rc-index-key-\".concat(index);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n var _ref = fieldNames || {},\n label = _ref.label,\n value = _ref.value,\n options = _ref.options;\n return {\n label: label || (childrenAsData ? 'children' : 'label'),\n value: value || 'value',\n options: options || 'options'\n };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n fieldNames = _ref2.fieldNames,\n childrenAsData = _ref2.childrenAsData;\n var flattenList = [];\n var _fillFieldNames = fillFieldNames(fieldNames, false),\n fieldLabel = _fillFieldNames.label,\n fieldValue = _fillFieldNames.value,\n fieldOptions = _fillFieldNames.options;\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n var label = data[fieldLabel];\n if (isGroupOption || !(fieldOptions in data)) {\n var value = data[fieldValue];\n\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data,\n label: label,\n value: value\n });\n } else {\n var grpLabel = label;\n if (grpLabel === undefined && childrenAsData) {\n grpLabel = data.label;\n }\n\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data,\n label: grpLabel\n });\n dig(data[fieldOptions], true);\n }\n });\n }\n dig(options, false);\n return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n return newOption;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n var match = false;\n function separate(str, _ref3) {\n var _ref4 = _toArray(_ref3),\n token = _ref4[0],\n restTokens = _ref4.slice(1);\n if (!token) {\n return [str];\n }\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n var list = separate(text, tokens);\n return match ? list : null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"showArrow\", \"inputIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { BaseSelectContext } from \"./hooks/useBaseProps\";\nimport useDelayReset from \"./hooks/useDelayReset\";\nimport useLock from \"./hooks/useLock\";\nimport useSelectTriggerControl from \"./hooks/useSelectTriggerControl\";\nimport Selector from \"./Selector\";\nimport SelectTrigger from \"./SelectTrigger\";\nimport TransBtn from \"./TransBtn\";\nimport { getSeparatedContent } from \"./utils/valueUtil\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport function isMultiple(mode) {\n return mode === 'tags' || mode === 'multiple';\n}\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _customizeRawInputEle, _classNames2;\n var id = props.id,\n prefixCls = props.prefixCls,\n className = props.className,\n showSearch = props.showSearch,\n tagRender = props.tagRender,\n direction = props.direction,\n omitDomProps = props.omitDomProps,\n displayValues = props.displayValues,\n onDisplayValuesChange = props.onDisplayValuesChange,\n emptyOptions = props.emptyOptions,\n _props$notFoundConten = props.notFoundContent,\n notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n onClear = props.onClear,\n mode = props.mode,\n disabled = props.disabled,\n loading = props.loading,\n getInputElement = props.getInputElement,\n getRawInputElement = props.getRawInputElement,\n open = props.open,\n defaultOpen = props.defaultOpen,\n onDropdownVisibleChange = props.onDropdownVisibleChange,\n activeValue = props.activeValue,\n onActiveValueChange = props.onActiveValueChange,\n activeDescendantId = props.activeDescendantId,\n searchValue = props.searchValue,\n autoClearSearchValue = props.autoClearSearchValue,\n onSearch = props.onSearch,\n onSearchSplit = props.onSearchSplit,\n tokenSeparators = props.tokenSeparators,\n allowClear = props.allowClear,\n showArrow = props.showArrow,\n inputIcon = props.inputIcon,\n clearIcon = props.clearIcon,\n OptionList = props.OptionList,\n animation = props.animation,\n transitionName = props.transitionName,\n dropdownStyle = props.dropdownStyle,\n dropdownClassName = props.dropdownClassName,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n dropdownRender = props.dropdownRender,\n dropdownAlign = props.dropdownAlign,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n _props$showAction = props.showAction,\n showAction = _props$showAction === void 0 ? [] : _props$showAction,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyUp = props.onKeyUp,\n onKeyDown = props.onKeyDown,\n onMouseDown = props.onMouseDown,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ============================== MISC ==============================\n var multiple = isMultiple(mode);\n var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n var domProps = _objectSpread({}, restProps);\n DEFAULT_OMIT_PROPS.forEach(function (propName) {\n delete domProps[propName];\n });\n omitDomProps === null || omitDomProps === void 0 ? void 0 : omitDomProps.forEach(function (propName) {\n delete domProps[propName];\n });\n\n // ============================= Mobile =============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n React.useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ============================== Refs ==============================\n var containerRef = React.useRef(null);\n var selectorDomRef = React.useRef(null);\n var triggerRef = React.useRef(null);\n var selectorRef = React.useRef(null);\n var listRef = React.useRef(null);\n\n /** Used for component focused management */\n var _useDelayReset = useDelayReset(),\n _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n mockFocused = _useDelayReset2[0],\n setMockFocused = _useDelayReset2[1],\n cancelSetMockFocused = _useDelayReset2[2];\n\n // =========================== Imperative ===========================\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current, _selectorRef$current2;\n return {\n focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n scrollTo: function scrollTo(arg) {\n var _listRef$current;\n return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n }\n };\n });\n\n // ========================== Search Value ==========================\n var mergedSearchValue = React.useMemo(function () {\n var _displayValues$;\n if (mode !== 'combobox') {\n return searchValue;\n }\n var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n }, [searchValue, mode, displayValues]);\n\n // ========================== Custom Input ==========================\n // Only works in `combobox`\n var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n // Used for customize replacement for `rc-cascader`\n var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 ? void 0 : (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n // ============================== Open ==============================\n var _useMergedState = useMergedState(undefined, {\n defaultValue: defaultOpen,\n value: open\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerOpen = _useMergedState2[0],\n setInnerOpen = _useMergedState2[1];\n var mergedOpen = innerOpen;\n\n // Not trigger `open` in `combobox` when `notFoundContent` is empty\n var emptyListContent = !notFoundContent && emptyOptions;\n if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n mergedOpen = false;\n }\n var triggerOpen = emptyListContent ? false : mergedOpen;\n var onToggleOpen = React.useCallback(function (newOpen) {\n var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n if (!disabled) {\n setInnerOpen(nextOpen);\n if (mergedOpen !== nextOpen) {\n onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 ? void 0 : onDropdownVisibleChange(nextOpen);\n }\n }\n }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n // ============================= Search =============================\n var tokenWithEnter = React.useMemo(function () {\n return (tokenSeparators || []).some(function (tokenSeparator) {\n return ['\\n', '\\r\\n'].includes(tokenSeparator);\n });\n }, [tokenSeparators]);\n var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n var ret = true;\n var newSearchText = searchText;\n onActiveValueChange === null || onActiveValueChange === void 0 ? void 0 : onActiveValueChange(null);\n\n // Check if match the `tokenSeparators`\n var patchLabels = isCompositing ? null : getSeparatedContent(searchText, tokenSeparators);\n\n // Ignore combobox since it's not split-able\n if (mode !== 'combobox' && patchLabels) {\n newSearchText = '';\n onSearchSplit === null || onSearchSplit === void 0 ? void 0 : onSearchSplit(patchLabels);\n\n // Should close when paste finish\n onToggleOpen(false);\n\n // Tell Selector that break next actions\n ret = false;\n }\n if (onSearch && mergedSearchValue !== newSearchText) {\n onSearch(newSearchText, {\n source: fromTyping ? 'typing' : 'effect'\n });\n }\n return ret;\n };\n\n // Only triggered when menu is closed & mode is tags\n // If menu is open, OptionList will take charge\n // If mode isn't tags, press enter is not meaningful when you can't see any option\n var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n // prevent empty tags from appearing when you click the Enter button\n if (!searchText || !searchText.trim()) {\n return;\n }\n onSearch(searchText, {\n source: 'submit'\n });\n };\n\n // Close will clean up single mode search text\n React.useEffect(function () {\n if (!mergedOpen && !multiple && mode !== 'combobox') {\n onInternalSearch('', false, false);\n }\n }, [mergedOpen]);\n\n // ============================ Disabled ============================\n // Close dropdown & remove focus state when disabled change\n React.useEffect(function () {\n if (innerOpen && disabled) {\n setInnerOpen(false);\n }\n if (disabled) {\n setMockFocused(false);\n }\n }, [disabled]);\n\n // ============================ Keyboard ============================\n /**\n * We record input value here to check if can press to clean up by backspace\n * - null: Key is not down, this is reset by key up\n * - true: Search text is empty when first time backspace down\n * - false: Search text is not empty when first time backspace down\n */\n var _useLock = useLock(),\n _useLock2 = _slicedToArray(_useLock, 2),\n getClearLock = _useLock2[0],\n setClearLock = _useLock2[1];\n\n // KeyDown\n var onInternalKeyDown = function onInternalKeyDown(event) {\n var clearLock = getClearLock();\n var which = event.which;\n if (which === KeyCode.ENTER) {\n // Do not submit form when type in the input\n if (mode !== 'combobox') {\n event.preventDefault();\n }\n\n // We only manage open state here, close logic should handle by list component\n if (!mergedOpen) {\n onToggleOpen(true);\n }\n }\n setClearLock(!!mergedSearchValue);\n\n // Remove value by `backspace`\n if (which === KeyCode.BACKSPACE && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n var cloneDisplayValues = _toConsumableArray(displayValues);\n var removedDisplayValue = null;\n for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n var current = cloneDisplayValues[i];\n if (!current.disabled) {\n cloneDisplayValues.splice(i, 1);\n removedDisplayValue = current;\n break;\n }\n }\n if (removedDisplayValue) {\n onDisplayValuesChange(cloneDisplayValues, {\n type: 'remove',\n values: [removedDisplayValue]\n });\n }\n }\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current2;\n (_listRef$current2 = listRef.current).onKeyDown.apply(_listRef$current2, [event].concat(rest));\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown.apply(void 0, [event].concat(rest));\n };\n\n // KeyUp\n var onInternalKeyUp = function onInternalKeyUp(event) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n rest[_key2 - 1] = arguments[_key2];\n }\n if (mergedOpen && listRef.current) {\n var _listRef$current3;\n (_listRef$current3 = listRef.current).onKeyUp.apply(_listRef$current3, [event].concat(rest));\n }\n onKeyUp === null || onKeyUp === void 0 ? void 0 : onKeyUp.apply(void 0, [event].concat(rest));\n };\n\n // ============================ Selector ============================\n var onSelectorRemove = function onSelectorRemove(val) {\n var newValues = displayValues.filter(function (i) {\n return i !== val;\n });\n onDisplayValuesChange(newValues, {\n type: 'remove',\n values: [val]\n });\n };\n\n // ========================== Focus / Blur ==========================\n /** Record real focus status */\n var focusRef = React.useRef(false);\n var onContainerFocus = function onContainerFocus() {\n setMockFocused(true);\n if (!disabled) {\n if (onFocus && !focusRef.current) {\n onFocus.apply(void 0, arguments);\n }\n\n // `showAction` should handle `focus` if set\n if (showAction.includes('focus')) {\n onToggleOpen(true);\n }\n }\n focusRef.current = true;\n };\n var onContainerBlur = function onContainerBlur() {\n setMockFocused(false, function () {\n focusRef.current = false;\n onToggleOpen(false);\n });\n if (disabled) {\n return;\n }\n if (mergedSearchValue) {\n // `tags` mode should move `searchValue` into values\n if (mode === 'tags') {\n onSearch(mergedSearchValue, {\n source: 'submit'\n });\n } else if (mode === 'multiple') {\n // `multiple` mode only clean the search value but not trigger event\n onSearch('', {\n source: 'blur'\n });\n }\n }\n if (onBlur) {\n onBlur.apply(void 0, arguments);\n }\n };\n\n // Give focus back of Select\n var activeTimeoutIds = [];\n React.useEffect(function () {\n return function () {\n activeTimeoutIds.forEach(function (timeoutId) {\n return clearTimeout(timeoutId);\n });\n activeTimeoutIds.splice(0, activeTimeoutIds.length);\n };\n }, []);\n var onInternalMouseDown = function onInternalMouseDown(event) {\n var _triggerRef$current;\n var target = event.target;\n var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n // We should give focus back to selector if clicked item is not focusable\n if (popupElement && popupElement.contains(target)) {\n var timeoutId = setTimeout(function () {\n var index = activeTimeoutIds.indexOf(timeoutId);\n if (index !== -1) {\n activeTimeoutIds.splice(index, 1);\n }\n cancelSetMockFocused();\n if (!mobile && !popupElement.contains(document.activeElement)) {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 ? void 0 : _selectorRef$current3.focus();\n }\n });\n activeTimeoutIds.push(timeoutId);\n }\n for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n restArgs[_key3 - 1] = arguments[_key3];\n }\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown.apply(void 0, [event].concat(restArgs));\n };\n\n // ============================ Dropdown ============================\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerWidth = _React$useState4[0],\n setContainerWidth = _React$useState4[1];\n var _React$useState5 = React.useState({}),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n forceUpdate = _React$useState6[1];\n // We need force update here since popup dom is render async\n function onPopupMouseEnter() {\n forceUpdate({});\n }\n useLayoutEffect(function () {\n if (triggerOpen) {\n var _containerRef$current;\n var newWidth = Math.ceil((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetWidth);\n if (containerWidth !== newWidth && !Number.isNaN(newWidth)) {\n setContainerWidth(newWidth);\n }\n }\n }, [triggerOpen]);\n\n // Used for raw custom input trigger\n var onTriggerVisibleChange;\n if (customizeRawInputElement) {\n onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n onToggleOpen(newOpen);\n };\n }\n\n // Close when click on non-select element\n useSelectTriggerControl(function () {\n var _triggerRef$current2;\n return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n // ============================ Context =============================\n var baseSelectContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n notFoundContent: notFoundContent,\n open: mergedOpen,\n triggerOpen: triggerOpen,\n id: id,\n showSearch: mergedShowSearch,\n multiple: multiple,\n toggleOpen: onToggleOpen\n });\n }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n // ==================================================================\n // == Render ==\n // ==================================================================\n\n // ============================= Arrow ==============================\n var mergedShowArrow = showArrow !== undefined ? showArrow : loading || !multiple && mode !== 'combobox';\n var arrowNode;\n if (mergedShowArrow) {\n arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n customizeIcon: inputIcon,\n customizeIconProps: {\n loading: loading,\n searchValue: mergedSearchValue,\n open: mergedOpen,\n focused: mockFocused,\n showSearch: mergedShowSearch\n }\n });\n }\n\n // ============================= Clear ==============================\n var clearNode;\n var onClearMouseDown = function onClearMouseDown() {\n var _selectorRef$current4;\n onClear === null || onClear === void 0 ? void 0 : onClear();\n (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 ? void 0 : _selectorRef$current4.focus();\n onDisplayValuesChange([], {\n type: 'clear',\n values: displayValues\n });\n onInternalSearch('', false, false);\n };\n if (!disabled && allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n clearNode = /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(prefixCls, \"-clear\"),\n onMouseDown: onClearMouseDown,\n customizeIcon: clearIcon\n }, \"\\xD7\");\n }\n\n // =========================== OptionList ===========================\n var optionList = /*#__PURE__*/React.createElement(OptionList, {\n ref: listRef\n });\n\n // ============================= Select =============================\n var mergedClassName = classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mockFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-multiple\"), multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-single\"), !multiple), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-allow-clear\"), allowClear), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-arrow\"), mergedShowArrow), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-loading\"), loading), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-open\"), mergedOpen), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch), _classNames2));\n\n // >>> Selector\n var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n ref: triggerRef,\n disabled: disabled,\n prefixCls: prefixCls,\n visible: triggerOpen,\n popupElement: optionList,\n containerWidth: containerWidth,\n animation: animation,\n transitionName: transitionName,\n dropdownStyle: dropdownStyle,\n dropdownClassName: dropdownClassName,\n direction: direction,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n dropdownRender: dropdownRender,\n dropdownAlign: dropdownAlign,\n placement: placement,\n getPopupContainer: getPopupContainer,\n empty: emptyOptions,\n getTriggerDOMNode: function getTriggerDOMNode() {\n return selectorDomRef.current;\n },\n onPopupVisibleChange: onTriggerVisibleChange,\n onPopupMouseEnter: onPopupMouseEnter\n }, customizeRawInputElement ? /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n ref: customizeRawInputRef\n }) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n domRef: selectorDomRef,\n prefixCls: prefixCls,\n inputElement: customizeInputElement,\n ref: selectorRef,\n id: id,\n showSearch: mergedShowSearch,\n autoClearSearchValue: autoClearSearchValue,\n mode: mode,\n activeDescendantId: activeDescendantId,\n tagRender: tagRender,\n values: displayValues,\n open: mergedOpen,\n onToggleOpen: onToggleOpen,\n activeValue: activeValue,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n onSearchSubmit: onInternalSearchSubmit,\n onRemove: onSelectorRemove,\n tokenWithEnter: tokenWithEnter\n })));\n\n // >>> Render\n var renderNode;\n\n // Render raw\n if (customizeRawInputElement) {\n renderNode = selectorNode;\n } else {\n renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: mergedClassName\n }, domProps, {\n ref: containerRef,\n onMouseDown: onInternalMouseDown,\n onKeyDown: onInternalKeyDown,\n onKeyUp: onInternalKeyUp,\n onFocus: onContainerFocus,\n onBlur: onContainerBlur\n }), mockFocused && !mergedOpen && /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n },\n \"aria-live\": \"polite\"\n }, \"\".concat(displayValues.map(function (_ref) {\n var label = _ref.label,\n value = _ref.value;\n return ['number', 'string'].includes(_typeof(label)) ? label : value;\n }).join(', '))), selectorNode, arrowNode, clearNode);\n }\n return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n value: baseSelectContext\n }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n bool = _React$useState2[0],\n setBool = _React$useState2[1];\n var delayRef = React.useRef(null);\n var cancelLatest = function cancelLatest() {\n window.clearTimeout(delayRef.current);\n };\n React.useEffect(function () {\n return cancelLatest;\n }, []);\n var delaySetBool = function delaySetBool(value, callback) {\n cancelLatest();\n delayRef.current = window.setTimeout(function () {\n setBool(value);\n if (callback) {\n callback();\n }\n }, timeout);\n };\n return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n var propsRef = React.useRef(null);\n propsRef.current = {\n open: open,\n triggerOpen: triggerOpen,\n customizedTrigger: customizedTrigger\n };\n React.useEffect(function () {\n function onGlobalMouseDown(event) {\n var _propsRef$current;\n // If trigger is customized, Trigger will take control of popupVisible\n if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n return;\n }\n var target = event.target;\n if (target.shadowRoot && event.composed) {\n target = event.composedPath()[0] || target;\n }\n if (propsRef.current.open && elements().filter(function (element) {\n return element;\n }).every(function (element) {\n return !element.contains(target) && element !== target;\n })) {\n // Should trigger close\n propsRef.current.triggerOpen(false);\n }\n }\n window.addEventListener('mousedown', onGlobalMouseDown);\n return function () {\n return window.removeEventListener('mousedown', onGlobalMouseDown);\n };\n }, []);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n return React.useMemo(function () {\n if (!searchValue || filterOption === false) {\n return options;\n }\n var fieldOptions = fieldNames.options,\n fieldLabel = fieldNames.label,\n fieldValue = fieldNames.value;\n var filteredOptions = [];\n var customizeFilter = typeof filterOption === 'function';\n var upperSearch = searchValue.toUpperCase();\n var filterFunc = customizeFilter ? filterOption : function (_, option) {\n // Use provided `optionFilterProp`\n if (optionFilterProp) {\n return includes(option[optionFilterProp], upperSearch);\n }\n\n // Auto select `label` or `value` by option type\n if (option[fieldOptions]) {\n // hack `fieldLabel` since `OptionGroup` children is not `label`\n return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n }\n return includes(option[fieldValue], upperSearch);\n };\n var wrapOption = customizeFilter ? function (opt) {\n return injectPropsWithOption(opt);\n } : function (opt) {\n return opt;\n };\n options.forEach(function (item) {\n // Group should check child options\n if (item[fieldOptions]) {\n // Check group first\n var matchGroup = filterFunc(searchValue, wrapOption(item));\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item[fieldOptions].filter(function (subItem) {\n return filterFunc(searchValue, wrapOption(subItem));\n });\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n }\n }\n return;\n }\n if (filterFunc(searchValue, wrapOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n var retId;\n\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_select_\".concat(getUUID()));\n }, []);\n return id || innerId;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n var _ref = node,\n key = _ref.key,\n _ref$props = _ref.props,\n children = _ref$props.children,\n value = _ref$props.value,\n restProps = _objectWithoutProperties(_ref$props, _excluded);\n return _objectSpread({\n key: key,\n value: value !== undefined ? value : key,\n children: children\n }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return toArray(nodes).map(function (node, index) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return null;\n }\n var _ref2 = node,\n isSelectOptGroup = _ref2.type.isSelectOptGroup,\n key = _ref2.key,\n _ref2$props = _ref2.props,\n children = _ref2$props.children,\n restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n if (optionOnly || !isSelectOptGroup) {\n return convertNodeToOption(node);\n }\n return _objectSpread(_objectSpread({\n key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n label: key\n }, restProps), {}, {\n options: convertChildrenToData(children)\n });\n }).filter(function (data) {\n return data;\n });\n}","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n var funcRef = React.useRef();\n funcRef.current = callback;\n var cacheFn = React.useCallback(function () {\n return funcRef.current.apply(funcRef, arguments);\n }, []);\n return cacheFn;\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var height = _ref.height,\n offsetY = _ref.offsetY,\n offsetX = _ref.offsetX,\n children = _ref.children,\n prefixCls = _ref.prefixCls,\n onInnerResize = _ref.onInnerResize,\n innerProps = _ref.innerProps,\n rtl = _ref.rtl,\n extra = _ref.extra;\n var outerStyle = {};\n var innerStyle = {\n display: 'flex',\n flexDirection: 'column'\n };\n if (offsetY !== undefined) {\n // Not set `width` since this will break `sticky: right`\n outerStyle = {\n height: height,\n position: 'relative',\n overflow: 'hidden'\n };\n innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n transform: \"translateY(\".concat(offsetY, \"px)\")\n }, rtl ? 'marginRight' : 'marginLeft', -offsetX), \"position\", 'absolute'), \"left\", 0), \"right\", 0), \"top\", 0));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: outerStyle\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref2) {\n var offsetHeight = _ref2.offsetHeight;\n if (offsetHeight && onInnerResize) {\n onInnerResize();\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: innerStyle,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n ref: ref\n }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nfunction getPageXY(e, horizontal) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return obj[horizontal ? 'pageX' : 'pageY'];\n}\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n rtl = props.rtl,\n scrollOffset = props.scrollOffset,\n scrollRange = props.scrollRange,\n onStartMove = props.onStartMove,\n onStopMove = props.onStopMove,\n onScroll = props.onScroll,\n horizontal = props.horizontal,\n spinSize = props.spinSize,\n containerSize = props.containerSize,\n style = props.style,\n propsThumbStyle = props.thumbStyle;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragging = _React$useState2[0],\n setDragging = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pageXY = _React$useState4[0],\n setPageXY = _React$useState4[1];\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n startTop = _React$useState6[0],\n setStartTop = _React$useState6[1];\n var isLTR = !rtl;\n\n // ========================= Refs =========================\n var scrollbarRef = React.useRef();\n var thumbRef = React.useRef();\n\n // ======================= Visible ========================\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n visible = _React$useState8[0],\n setVisible = _React$useState8[1];\n var visibleTimeoutRef = React.useRef();\n var delayHidden = function delayHidden() {\n clearTimeout(visibleTimeoutRef.current);\n setVisible(true);\n visibleTimeoutRef.current = setTimeout(function () {\n setVisible(false);\n }, 3000);\n };\n\n // ======================== Range =========================\n var enableScrollRange = scrollRange - containerSize || 0;\n var enableOffsetRange = containerSize - spinSize || 0;\n\n // ========================= Top ==========================\n var top = React.useMemo(function () {\n if (scrollOffset === 0 || enableScrollRange === 0) {\n return 0;\n }\n var ptg = scrollOffset / enableScrollRange;\n return ptg * enableOffsetRange;\n }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n\n // ====================== Container =======================\n var onContainerMouseDown = function onContainerMouseDown(e) {\n e.stopPropagation();\n e.preventDefault();\n };\n\n // ======================== Thumb =========================\n var stateRef = React.useRef({\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n });\n stateRef.current = {\n top: top,\n dragging: dragging,\n pageY: pageXY,\n startTop: startTop\n };\n var onThumbMouseDown = function onThumbMouseDown(e) {\n setDragging(true);\n setPageXY(getPageXY(e, horizontal));\n setStartTop(stateRef.current.top);\n onStartMove();\n e.stopPropagation();\n e.preventDefault();\n };\n\n // ======================== Effect ========================\n\n // React make event as passive, but we need to preventDefault\n // Add event on dom directly instead.\n // ref: https://github.com/facebook/react/issues/9809\n React.useEffect(function () {\n var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n e.preventDefault();\n };\n var scrollbarEle = scrollbarRef.current;\n var thumbEle = thumbRef.current;\n scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.addEventListener('touchstart', onThumbMouseDown);\n return function () {\n scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n };\n }, []);\n\n // Pass to effect\n var enableScrollRangeRef = React.useRef();\n enableScrollRangeRef.current = enableScrollRange;\n var enableOffsetRangeRef = React.useRef();\n enableOffsetRangeRef.current = enableOffsetRange;\n React.useEffect(function () {\n if (dragging) {\n var moveRafId;\n var onMouseMove = function onMouseMove(e) {\n var _stateRef$current = stateRef.current,\n stateDragging = _stateRef$current.dragging,\n statePageY = _stateRef$current.pageY,\n stateStartTop = _stateRef$current.startTop;\n raf.cancel(moveRafId);\n if (stateDragging) {\n var offset = getPageXY(e, horizontal) - statePageY;\n var newTop = stateStartTop;\n if (!isLTR && horizontal) {\n newTop -= offset;\n } else {\n newTop += offset;\n }\n var tmpEnableScrollRange = enableScrollRangeRef.current;\n var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n newScrollTop = Math.max(newScrollTop, 0);\n newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n moveRafId = raf(function () {\n onScroll(newScrollTop, horizontal);\n });\n }\n };\n var onMouseUp = function onMouseUp() {\n setDragging(false);\n onStopMove();\n };\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('touchmove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n window.addEventListener('touchend', onMouseUp);\n return function () {\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('touchmove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n window.removeEventListener('touchend', onMouseUp);\n raf.cancel(moveRafId);\n };\n }\n }, [dragging]);\n React.useEffect(function () {\n delayHidden();\n }, [scrollOffset]);\n\n // ====================== Imperative ======================\n React.useImperativeHandle(ref, function () {\n return {\n delayHidden: delayHidden\n };\n });\n\n // ======================== Render ========================\n var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n var containerStyle = {\n position: 'absolute',\n visibility: visible ? null : 'hidden'\n };\n var thumbStyle = {\n position: 'absolute',\n background: 'rgba(0, 0, 0, 0.5)',\n borderRadius: 99,\n cursor: 'pointer',\n userSelect: 'none'\n };\n if (horizontal) {\n // Container\n containerStyle.height = 8;\n containerStyle.left = 0;\n containerStyle.right = 0;\n containerStyle.bottom = 0;\n\n // Thumb\n thumbStyle.height = '100%';\n thumbStyle.width = spinSize;\n if (isLTR) {\n thumbStyle.left = top;\n } else {\n thumbStyle.right = top;\n }\n } else {\n // Container\n containerStyle.width = 8;\n containerStyle.top = 0;\n containerStyle.bottom = 0;\n if (isLTR) {\n containerStyle.right = 0;\n } else {\n containerStyle.left = 0;\n }\n\n // Thumb\n thumbStyle.width = '100%';\n thumbStyle.height = spinSize;\n thumbStyle.top = top;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarRef,\n className: classNames(scrollbarPrefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), \"\".concat(scrollbarPrefixCls, \"-visible\"), visible)),\n style: _objectSpread(_objectSpread({}, containerStyle), style),\n onMouseDown: onContainerMouseDown,\n onMouseMove: delayHidden\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: thumbRef,\n className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n style: _objectSpread(_objectSpread({}, thumbStyle), propsThumbStyle),\n onMouseDown: onThumbMouseDown\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","import * as React from 'react';\nexport function Item(_ref) {\n var children = _ref.children,\n setRef = _ref.setRef;\n var refFunc = React.useCallback(function (node) {\n setRef(node);\n }, []);\n return /*#__PURE__*/React.cloneElement(children, {\n ref: refFunc\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n function CacheMap() {\n _classCallCheck(this, CacheMap);\n _defineProperty(this, \"maps\", void 0);\n // Used for cache key\n // `useMemo` no need to update if `id` not change\n _defineProperty(this, \"id\", 0);\n this.maps = Object.create(null);\n }\n _createClass(CacheMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.maps[key] = value;\n this.id += 1;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.maps[key];\n }\n }]);\n return CacheMap;\n}();\nexport default CacheMap;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { warning } from 'rc-util';\nvar MAX_TIMES = 10;\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n var scrollRef = React.useRef();\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n syncState = _React$useState2[0],\n setSyncState = _React$useState2[1];\n\n // ========================== Sync Scroll ==========================\n useLayoutEffect(function () {\n if (syncState && syncState.times < MAX_TIMES) {\n // Never reach\n if (!containerRef.current) {\n setSyncState(function (ori) {\n return _objectSpread({}, ori);\n });\n return;\n }\n collectHeight();\n var targetAlign = syncState.targetAlign,\n originAlign = syncState.originAlign,\n index = syncState.index,\n offset = syncState.offset;\n var height = containerRef.current.clientHeight;\n var needCollectHeight = false;\n var newTargetAlign = targetAlign;\n var targetTop = null;\n\n // Go to next frame if height not exist\n if (height) {\n var mergedAlign = targetAlign || originAlign;\n\n // Get top & bottom\n var stackTop = 0;\n var itemTop = 0;\n var itemBottom = 0;\n var maxLen = Math.min(data.length - 1, index);\n for (var i = 0; i <= maxLen; i += 1) {\n var key = getKey(data[i]);\n itemTop = stackTop;\n var cacheHeight = heights.get(key);\n itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n stackTop = itemBottom;\n }\n\n // Check if need sync height (visible range has item not record height)\n var leftHeight = mergedAlign === 'top' ? offset : height - offset;\n for (var _i = maxLen; _i >= 0; _i -= 1) {\n var _key = getKey(data[_i]);\n var _cacheHeight = heights.get(_key);\n if (_cacheHeight === undefined) {\n needCollectHeight = true;\n break;\n }\n leftHeight -= _cacheHeight;\n if (leftHeight <= 0) {\n break;\n }\n }\n\n // Scroll to\n switch (mergedAlign) {\n case 'top':\n targetTop = itemTop - offset;\n break;\n case 'bottom':\n targetTop = itemBottom - height + offset;\n break;\n default:\n {\n var scrollTop = containerRef.current.scrollTop;\n var scrollBottom = scrollTop + height;\n if (itemTop < scrollTop) {\n newTargetAlign = 'top';\n } else if (itemBottom > scrollBottom) {\n newTargetAlign = 'bottom';\n }\n }\n }\n if (targetTop !== null) {\n syncScrollTop(targetTop);\n }\n\n // One more time for sync\n if (targetTop !== syncState.lastTop) {\n needCollectHeight = true;\n }\n }\n\n // Trigger next effect\n if (needCollectHeight) {\n setSyncState(_objectSpread(_objectSpread({}, syncState), {}, {\n times: syncState.times + 1,\n targetAlign: newTargetAlign,\n lastTop: targetTop\n }));\n }\n } else if (process.env.NODE_ENV !== 'production' && (syncState === null || syncState === void 0 ? void 0 : syncState.times) === MAX_TIMES) {\n warning(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');\n }\n }, [syncState, containerRef.current]);\n\n // =========================== Scroll To ===========================\n return function (arg) {\n // When not argument provided, we think dev may want to show the scrollbar\n if (arg === null || arg === undefined) {\n triggerFlash();\n return;\n }\n\n // Normal scroll logic\n raf.cancel(scrollRef.current);\n if (typeof arg === 'number') {\n syncScrollTop(arg);\n } else if (arg && _typeof(arg) === 'object') {\n var index;\n var align = arg.align;\n if ('index' in arg) {\n index = arg.index;\n } else {\n index = data.findIndex(function (item) {\n return getKey(item) === arg.key;\n });\n }\n var _arg$offset = arg.offset,\n offset = _arg$offset === void 0 ? 0 : _arg$offset;\n setSyncState({\n times: 0,\n index: index,\n offset: offset,\n originAlign: align\n });\n }\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from \"../utils/algorithmUtil\";\nexport default function useDiffItem(data, getKey, onDiff) {\n var _React$useState = React.useState(data),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevData = _React$useState2[0],\n setPrevData = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n diffItem = _React$useState4[0],\n setDiffItem = _React$useState4[1];\n React.useEffect(function () {\n var diff = findListDiffIndex(prevData || [], data || [], getKey);\n if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n onDiff === null || onDiff === void 0 || onDiff(diff.index);\n setDiffItem(data[diff.index]);\n }\n setPrevData(data);\n }, [data]);\n return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n var beforeCount = start - min;\n var afterCount = max - start;\n var balanceCount = Math.min(beforeCount, afterCount) * 2;\n\n // Balance\n if (index <= balanceCount) {\n var stepIndex = Math.floor(index / 2);\n if (index % 2) {\n return start + stepIndex + 1;\n }\n return start - stepIndex;\n }\n\n // One is out of range\n if (beforeCount > afterCount) {\n return start - (index - afterCount);\n }\n return start + (index - beforeCount);\n}\n\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n var originLen = originList.length;\n var targetLen = targetList.length;\n var shortList;\n var longList;\n if (originLen === 0 && targetLen === 0) {\n return null;\n }\n if (originLen < targetLen) {\n shortList = originList;\n longList = targetList;\n } else {\n shortList = targetList;\n longList = originList;\n }\n var notExistKey = {\n __EMPTY_ITEM__: true\n };\n function getItemKey(item) {\n if (item !== undefined) {\n return getKey(item);\n }\n return notExistKey;\n }\n\n // Loop to find diff one\n var diffIndex = null;\n var multiple = Math.abs(originLen - targetLen) !== 1;\n for (var i = 0; i < longList.length; i += 1) {\n var shortKey = getItemKey(shortList[i]);\n var longKey = getItemKey(longList[i]);\n if (shortKey !== longKey) {\n diffIndex = i;\n multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n break;\n }\n }\n return diffIndex === null ? null : {\n index: diffIndex,\n multiple: multiple\n };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom) {\n // Do lock for a wheel when scrolling\n var lockRef = useRef(false);\n var lockTimeoutRef = useRef(null);\n function lockScroll() {\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = true;\n lockTimeoutRef.current = setTimeout(function () {\n lockRef.current = false;\n }, 50);\n }\n\n // Pass to ref since global add is in closure\n var scrollPingRef = useRef({\n top: isScrollAtTop,\n bottom: isScrollAtBottom\n });\n scrollPingRef.current.top = isScrollAtTop;\n scrollPingRef.current.bottom = isScrollAtBottom;\n return function (deltaY) {\n var smoothOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var originScroll =\n // Pass origin wheel when on the top\n deltaY < 0 && scrollPingRef.current.top ||\n // Pass origin wheel when on the bottom\n deltaY > 0 && scrollPingRef.current.bottom;\n if (smoothOffset && originScroll) {\n // No need lock anymore when it's smooth offset from touchMove interval\n clearTimeout(lockTimeoutRef.current);\n lockRef.current = false;\n } else if (!originScroll || lockRef.current) {\n lockScroll();\n }\n return !lockRef.current && originScroll;\n };\n});","import { useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport isFF from \"../utils/isFirefox\";\nimport useOriginScroll from \"./useOriginScroll\";\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n var offsetRef = useRef(0);\n var nextFrameRef = useRef(null);\n\n // Firefox patch\n var wheelValueRef = useRef(null);\n var isMouseScrollRef = useRef(false);\n\n // Scroll status sync\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n function onWheelY(event, deltaY) {\n raf.cancel(nextFrameRef.current);\n offsetRef.current += deltaY;\n wheelValueRef.current = deltaY;\n\n // Do nothing when scroll at the edge, Skip check when is in scroll\n if (originScroll(deltaY)) return;\n\n // Proxy of scroll events\n if (!isFF) {\n event.preventDefault();\n }\n nextFrameRef.current = raf(function () {\n // Patch a multiple for Firefox to fix wheel number too small\n // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n onWheelDelta(offsetRef.current * patchMultiple);\n offsetRef.current = 0;\n });\n }\n function onWheelX(event, deltaX) {\n onWheelDelta(deltaX, true);\n if (!isFF) {\n event.preventDefault();\n }\n }\n\n // Check for which direction does wheel do. `sx` means `shift + wheel`\n var wheelDirectionRef = useRef(null);\n var wheelDirectionCleanRef = useRef(null);\n function onWheel(event) {\n if (!inVirtual) return;\n\n // Wait for 2 frame to clean direction\n raf.cancel(wheelDirectionCleanRef.current);\n wheelDirectionCleanRef.current = raf(function () {\n wheelDirectionRef.current = null;\n }, 2);\n var deltaX = event.deltaX,\n deltaY = event.deltaY,\n shiftKey = event.shiftKey;\n var mergedDeltaX = deltaX;\n var mergedDeltaY = deltaY;\n if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n mergedDeltaX = deltaY;\n mergedDeltaY = 0;\n wheelDirectionRef.current = 'sx';\n }\n var absX = Math.abs(mergedDeltaX);\n var absY = Math.abs(mergedDeltaY);\n if (wheelDirectionRef.current === null) {\n wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n }\n if (wheelDirectionRef.current === 'y') {\n onWheelY(event, mergedDeltaY);\n } else {\n onWheelX(event, mergedDeltaX);\n }\n }\n\n // A patch for firefox\n function onFireFoxScroll(event) {\n if (!inVirtual) return;\n isMouseScrollRef.current = event.detail === wheelValueRef.current;\n }\n return [onWheel, onFireFoxScroll];\n}","import { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n var touchedRef = useRef(false);\n var touchYRef = useRef(0);\n var elementRef = useRef(null);\n\n // Smooth scroll\n var intervalRef = useRef(null);\n\n /* eslint-disable prefer-const */\n var cleanUpEvents;\n var onTouchMove = function onTouchMove(e) {\n if (touchedRef.current) {\n var currentY = Math.ceil(e.touches[0].pageY);\n var _offsetY = touchYRef.current - currentY;\n touchYRef.current = currentY;\n if (callback(_offsetY)) {\n e.preventDefault();\n }\n\n // Smooth interval\n clearInterval(intervalRef.current);\n intervalRef.current = setInterval(function () {\n _offsetY *= SMOOTH_PTG;\n if (!callback(_offsetY, true) || Math.abs(_offsetY) <= 0.1) {\n clearInterval(intervalRef.current);\n }\n }, 16);\n }\n };\n var onTouchEnd = function onTouchEnd() {\n touchedRef.current = false;\n cleanUpEvents();\n };\n var onTouchStart = function onTouchStart(e) {\n cleanUpEvents();\n if (e.touches.length === 1 && !touchedRef.current) {\n touchedRef.current = true;\n touchYRef.current = Math.ceil(e.touches[0].pageY);\n elementRef.current = e.target;\n elementRef.current.addEventListener('touchmove', onTouchMove);\n elementRef.current.addEventListener('touchend', onTouchEnd);\n }\n };\n cleanUpEvents = function cleanUpEvents() {\n if (elementRef.current) {\n elementRef.current.removeEventListener('touchmove', onTouchMove);\n elementRef.current.removeEventListener('touchend', onTouchEnd);\n }\n };\n useLayoutEffect(function () {\n if (inVirtual) {\n listRef.current.addEventListener('touchstart', onTouchStart);\n }\n return function () {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.removeEventListener('touchstart', onTouchStart);\n cleanUpEvents();\n clearInterval(intervalRef.current);\n };\n }, [inVirtual]);\n}","var MIN_SIZE = 20;\nexport function getSpinSize() {\n var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var baseSize = containerSize / scrollRange * containerSize;\n if (isNaN(baseSize)) {\n baseSize = 0;\n }\n baseSize = Math.max(baseSize, MIN_SIZE);\n return Math.floor(baseSize);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Filler from \"./Filler\";\nimport ScrollBar from \"./ScrollBar\";\nimport useChildren from \"./hooks/useChildren\";\nimport useHeights from \"./hooks/useHeights\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nimport { useEvent } from 'rc-util';\nimport { useGetSize } from \"./hooks/useGetSize\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n overflowY: 'auto',\n overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n className = props.className,\n height = props.height,\n itemHeight = props.itemHeight,\n _props$fullHeight = props.fullHeight,\n fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n style = props.style,\n data = props.data,\n children = props.children,\n itemKey = props.itemKey,\n virtual = props.virtual,\n direction = props.direction,\n scrollWidth = props.scrollWidth,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n onScroll = props.onScroll,\n onVirtualScroll = props.onVirtualScroll,\n onVisibleChange = props.onVisibleChange,\n innerProps = props.innerProps,\n extraRender = props.extraRender,\n styles = props.styles,\n restProps = _objectWithoutProperties(props, _excluded);\n\n // ================================= MISC =================================\n var useVirtual = !!(virtual !== false && height && itemHeight);\n var inVirtual = useVirtual && data && (itemHeight * data.length > height || !!scrollWidth);\n var isRTL = direction === 'rtl';\n var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n var mergedData = data || EMPTY_DATA;\n var componentRef = useRef();\n var fillerInnerRef = useRef();\n\n // =============================== Item Key ===============================\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n offsetTop = _useState2[0],\n setOffsetTop = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n offsetLeft = _useState4[0],\n setOffsetLeft = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n scrollMoving = _useState6[0],\n setScrollMoving = _useState6[1];\n var onScrollbarStartMove = function onScrollbarStartMove() {\n setScrollMoving(true);\n };\n var onScrollbarStopMove = function onScrollbarStopMove() {\n setScrollMoving(false);\n };\n\n // =============================== Item Key ===============================\n var getKey = React.useCallback(function (item) {\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return item === null || item === void 0 ? void 0 : item[itemKey];\n }, [itemKey]);\n var sharedConfig = {\n getKey: getKey\n };\n\n // ================================ Scroll ================================\n function syncScrollTop(newTop) {\n setOffsetTop(function (origin) {\n var value;\n if (typeof newTop === 'function') {\n value = newTop(origin);\n } else {\n value = newTop;\n }\n var alignedTop = keepInRange(value);\n componentRef.current.scrollTop = alignedTop;\n return alignedTop;\n });\n }\n\n // ================================ Legacy ================================\n // Put ref here since the range is generate by follow\n var rangeRef = useRef({\n start: 0,\n end: mergedData.length\n });\n var diffItemRef = useRef();\n var _useDiffItem = useDiffItem(mergedData, getKey),\n _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n diffItem = _useDiffItem2[0];\n diffItemRef.current = diffItem;\n\n // ================================ Height ================================\n var _useHeights = useHeights(getKey, null, null),\n _useHeights2 = _slicedToArray(_useHeights, 4),\n setInstanceRef = _useHeights2[0],\n collectHeight = _useHeights2[1],\n heights = _useHeights2[2],\n heightUpdatedMark = _useHeights2[3];\n\n // ========================== Visible Calculation =========================\n var _React$useMemo = React.useMemo(function () {\n if (!useVirtual) {\n return {\n scrollHeight: undefined,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n\n // Always use virtual scroll bar in avoid shaking\n if (!inVirtual) {\n var _fillerInnerRef$curre;\n return {\n scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n start: 0,\n end: mergedData.length - 1,\n offset: undefined\n };\n }\n var itemTop = 0;\n var startIndex;\n var startOffset;\n var endIndex;\n var dataLen = mergedData.length;\n for (var i = 0; i < dataLen; i += 1) {\n var _item = mergedData[i];\n var key = getKey(_item);\n var cacheHeight = heights.get(key);\n var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n // Check item top in the range\n if (currentItemBottom >= offsetTop && startIndex === undefined) {\n startIndex = i;\n startOffset = itemTop;\n }\n\n // Check item bottom in the range. We will render additional one item for motion usage\n if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n endIndex = i;\n }\n itemTop = currentItemBottom;\n }\n\n // When scrollTop at the end but data cut to small count will reach this\n if (startIndex === undefined) {\n startIndex = 0;\n startOffset = 0;\n endIndex = Math.ceil(height / itemHeight);\n }\n if (endIndex === undefined) {\n endIndex = mergedData.length - 1;\n }\n\n // Give cache to improve scroll experience\n endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n return {\n scrollHeight: itemTop,\n start: startIndex,\n end: endIndex,\n offset: startOffset\n };\n }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n scrollHeight = _React$useMemo.scrollHeight,\n start = _React$useMemo.start,\n end = _React$useMemo.end,\n fillerOffset = _React$useMemo.offset;\n rangeRef.current.start = start;\n rangeRef.current.end = end;\n\n // ================================= Size =================================\n var _React$useState = React.useState({\n width: 0,\n height: height\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n size = _React$useState2[0],\n setSize = _React$useState2[1];\n var onHolderResize = function onHolderResize(sizeInfo) {\n setSize({\n width: sizeInfo.width || sizeInfo.offsetWidth,\n height: sizeInfo.height || sizeInfo.offsetHeight\n });\n };\n\n // Hack on scrollbar to enable flash call\n var verticalScrollBarRef = useRef();\n var horizontalScrollBarRef = useRef();\n var horizontalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.width, scrollWidth);\n }, [size.width, scrollWidth]);\n var verticalScrollBarSpinSize = React.useMemo(function () {\n return getSpinSize(size.height, scrollHeight);\n }, [size.height, scrollHeight]);\n\n // =============================== In Range ===============================\n var maxScrollHeight = scrollHeight - height;\n var maxScrollHeightRef = useRef(maxScrollHeight);\n maxScrollHeightRef.current = maxScrollHeight;\n function keepInRange(newScrollTop) {\n var newTop = newScrollTop;\n if (!Number.isNaN(maxScrollHeightRef.current)) {\n newTop = Math.min(newTop, maxScrollHeightRef.current);\n }\n newTop = Math.max(newTop, 0);\n return newTop;\n }\n var isScrollAtTop = offsetTop <= 0;\n var isScrollAtBottom = offsetTop >= maxScrollHeight;\n var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n // ================================ Scroll ================================\n var getVirtualScrollInfo = function getVirtualScrollInfo() {\n return {\n x: isRTL ? -offsetLeft : offsetLeft,\n y: offsetTop\n };\n };\n var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n var triggerScroll = useEvent(function () {\n if (onVirtualScroll) {\n var nextInfo = getVirtualScrollInfo();\n\n // Trigger when offset changed\n if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n onVirtualScroll(nextInfo);\n lastVirtualScrollInfoRef.current = nextInfo;\n }\n }\n });\n function onScrollBar(newScrollOffset, horizontal) {\n var newOffset = newScrollOffset;\n if (horizontal) {\n flushSync(function () {\n setOffsetLeft(newOffset);\n });\n triggerScroll();\n } else {\n syncScrollTop(newOffset);\n }\n }\n\n // When data size reduce. It may trigger native scroll event back to fit scroll position\n function onFallbackScroll(e) {\n var newScrollTop = e.currentTarget.scrollTop;\n if (newScrollTop !== offsetTop) {\n syncScrollTop(newScrollTop);\n }\n\n // Trigger origin onScroll\n onScroll === null || onScroll === void 0 || onScroll(e);\n triggerScroll();\n }\n var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n var tmpOffsetLeft = nextOffsetLeft;\n var max = scrollWidth - size.width;\n tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n return tmpOffsetLeft;\n };\n var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n if (fromHorizontal) {\n // Horizontal scroll no need sync virtual position\n\n flushSync(function () {\n setOffsetLeft(function (left) {\n var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n return keepInHorizontalRange(nextOffsetLeft);\n });\n });\n triggerScroll();\n } else {\n syncScrollTop(function (top) {\n var newTop = top + offsetXY;\n return newTop;\n });\n }\n });\n\n // Since this added in global,should use ref to keep update\n var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),\n _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n onRawWheel = _useFrameWheel2[0],\n onFireFoxScroll = _useFrameWheel2[1];\n\n // Mobile touch move\n useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n if (originScroll(deltaY, smoothOffset)) {\n return false;\n }\n onRawWheel({\n preventDefault: function preventDefault() {},\n deltaY: deltaY\n });\n return true;\n });\n useLayoutEffect(function () {\n // Firefox only\n function onMozMousePixelScroll(e) {\n if (useVirtual) {\n e.preventDefault();\n }\n }\n var componentEle = componentRef.current;\n componentEle.addEventListener('wheel', onRawWheel);\n componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n return function () {\n componentEle.removeEventListener('wheel', onRawWheel);\n componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n };\n }, [useVirtual]);\n\n // Sync scroll left\n useLayoutEffect(function () {\n if (scrollWidth) {\n setOffsetLeft(function (left) {\n return keepInHorizontalRange(left);\n });\n }\n }, [size.width, scrollWidth]);\n\n // ================================= Ref ==================================\n var delayHideScrollBar = function delayHideScrollBar() {\n var _verticalScrollBarRef, _horizontalScrollBarR;\n (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n };\n var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n return collectHeight(true);\n }, syncScrollTop, delayHideScrollBar);\n React.useImperativeHandle(ref, function () {\n return {\n getScrollInfo: getVirtualScrollInfo,\n scrollTo: function scrollTo(config) {\n function isPosScroll(arg) {\n return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n }\n if (isPosScroll(config)) {\n // Scroll X\n if (config.left !== undefined) {\n setOffsetLeft(keepInHorizontalRange(config.left));\n }\n\n // Scroll Y\n _scrollTo(config.top);\n } else {\n _scrollTo(config);\n }\n }\n };\n });\n\n // ================================ Effect ================================\n /** We need told outside that some list not rendered */\n useLayoutEffect(function () {\n if (onVisibleChange) {\n var renderList = mergedData.slice(start, end + 1);\n onVisibleChange(renderList, mergedData);\n }\n }, [start, end, mergedData]);\n\n // ================================ Extra =================================\n var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n start: start,\n end: end,\n virtual: inVirtual,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n rtl: isRTL,\n getSize: getSize\n });\n\n // ================================ Render ================================\n var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);\n var componentStyle = null;\n if (height) {\n componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n if (useVirtual) {\n componentStyle.overflowY = 'hidden';\n if (scrollWidth) {\n componentStyle.overflowX = 'hidden';\n }\n if (scrollMoving) {\n componentStyle.pointerEvents = 'none';\n }\n }\n }\n var containerProps = {};\n if (isRTL) {\n containerProps.dir = 'rtl';\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: _objectSpread(_objectSpread({}, style), {}, {\n position: 'relative'\n }),\n className: mergedClassName\n }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onHolderResize\n }, /*#__PURE__*/React.createElement(Component, {\n className: \"\".concat(prefixCls, \"-holder\"),\n style: componentStyle,\n ref: componentRef,\n onScroll: onFallbackScroll,\n onMouseEnter: delayHideScrollBar\n }, /*#__PURE__*/React.createElement(Filler, {\n prefixCls: prefixCls,\n height: scrollHeight,\n offsetX: offsetLeft,\n offsetY: fillerOffset,\n scrollWidth: scrollWidth,\n onInnerResize: collectHeight,\n ref: fillerInnerRef,\n innerProps: innerProps,\n rtl: isRTL,\n extra: extraContent\n }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: verticalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetTop,\n scrollRange: scrollHeight,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: verticalScrollBarSpinSize,\n containerSize: size.height,\n style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n ref: horizontalScrollBarRef,\n prefixCls: prefixCls,\n scrollOffset: offsetLeft,\n scrollRange: scrollWidth,\n rtl: isRTL,\n onScroll: onScrollBar,\n onStartMove: onScrollbarStartMove,\n onStopMove: onScrollbarStopMove,\n spinSize: horizontalScrollBarSpinSize,\n containerSize: size.width,\n horizontal: true,\n style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport raf from \"rc-util/es/raf\";\nimport CacheMap from \"../utils/CacheMap\";\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n updatedMark = _React$useState2[0],\n setUpdatedMark = _React$useState2[1];\n var instanceRef = useRef(new Map());\n var heightsRef = useRef(new CacheMap());\n var collectRafRef = useRef();\n function cancelRaf() {\n raf.cancel(collectRafRef.current);\n }\n function collectHeight() {\n var sync = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n cancelRaf();\n var doCollect = function doCollect() {\n instanceRef.current.forEach(function (element, key) {\n if (element && element.offsetParent) {\n var htmlElement = findDOMNode(element);\n var offsetHeight = htmlElement.offsetHeight;\n if (heightsRef.current.get(key) !== offsetHeight) {\n heightsRef.current.set(key, htmlElement.offsetHeight);\n }\n }\n });\n\n // Always trigger update mark to tell parent that should re-calculate heights when resized\n setUpdatedMark(function (c) {\n return c + 1;\n });\n };\n if (sync) {\n doCollect();\n } else {\n collectRafRef.current = raf(doCollect);\n }\n }\n function setInstanceRef(item, instance) {\n var key = getKey(item);\n var origin = instanceRef.current.get(key);\n if (instance) {\n instanceRef.current.set(key, instance);\n collectHeight();\n } else {\n instanceRef.current.delete(key);\n }\n\n // Instance changed\n if (!origin !== !instance) {\n if (instance) {\n onItemAdd === null || onItemAdd === void 0 || onItemAdd(item);\n } else {\n onItemRemove === null || onItemRemove === void 0 || onItemRemove(item);\n }\n }\n }\n useEffect(function () {\n return cancelRaf;\n }, []);\n return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n var _React$useMemo = React.useMemo(function () {\n return [new Map(), []];\n }, [mergedData, heights.id, itemHeight]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n key2Index = _React$useMemo2[0],\n bottomList = _React$useMemo2[1];\n var getSize = function getSize(startKey) {\n var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n // Get from cache first\n var startIndex = key2Index.get(startKey);\n var endIndex = key2Index.get(endKey);\n\n // Loop to fill the cache\n if (startIndex === undefined || endIndex === undefined) {\n var dataLen = mergedData.length;\n for (var i = bottomList.length; i < dataLen; i += 1) {\n var _heights$get;\n var item = mergedData[i];\n var key = getKey(item);\n key2Index.set(key, i);\n var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n if (key === startKey) {\n startIndex = i;\n }\n if (key === endKey) {\n endIndex = i;\n }\n if (startIndex !== undefined && endIndex !== undefined) {\n break;\n }\n }\n }\n return {\n top: bottomList[startIndex - 1] || 0,\n bottom: bottomList[endIndex]\n };\n };\n return getSize;\n}","import * as React from 'react';\nimport { Item } from \"../Item\";\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, setNodeRef, renderFunc, _ref) {\n var getKey = _ref.getKey;\n return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n var eleIndex = startIndex + index;\n var node = renderFunc(item, eleIndex, {\n style: {\n width: scrollWidth\n }\n });\n var key = getKey(item);\n return /*#__PURE__*/React.createElement(Item, {\n key: key,\n setRef: function setRef(ele) {\n return setNodeRef(item, ele);\n }\n }, node);\n });\n}","import List from \"./List\";\nexport default List;","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport classNames from 'classnames';\nimport List from 'rc-virtual-list';\nimport TransBtn from \"./TransBtn\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport SelectContext from \"./SelectContext\";\n\n// export interface OptionListProps {\n\nfunction isTitleType(content) {\n return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n var _useBaseProps = useBaseProps(),\n prefixCls = _useBaseProps.prefixCls,\n id = _useBaseProps.id,\n open = _useBaseProps.open,\n multiple = _useBaseProps.multiple,\n mode = _useBaseProps.mode,\n searchValue = _useBaseProps.searchValue,\n toggleOpen = _useBaseProps.toggleOpen,\n notFoundContent = _useBaseProps.notFoundContent,\n onPopupScroll = _useBaseProps.onPopupScroll;\n var _React$useContext = React.useContext(SelectContext),\n flattenOptions = _React$useContext.flattenOptions,\n onActiveValue = _React$useContext.onActiveValue,\n defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n onSelect = _React$useContext.onSelect,\n menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n rawValues = _React$useContext.rawValues,\n fieldNames = _React$useContext.fieldNames,\n virtual = _React$useContext.virtual,\n listHeight = _React$useContext.listHeight,\n listItemHeight = _React$useContext.listItemHeight;\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var memoFlattenOptions = useMemo(function () {\n return flattenOptions;\n }, [open, flattenOptions], function (prev, next) {\n return next[0] && prev[1] !== next[1];\n });\n\n // =========================== List ===========================\n var listRef = React.useRef(null);\n var onListMouseDown = function onListMouseDown(event) {\n event.preventDefault();\n };\n var scrollIntoView = function scrollIntoView(args) {\n if (listRef.current) {\n listRef.current.scrollTo(typeof args === 'number' ? {\n index: args\n } : args);\n }\n };\n\n // ========================== Active ==========================\n var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var len = memoFlattenOptions.length;\n for (var i = 0; i < len; i += 1) {\n var current = (index + i * offset + len) % len;\n var _memoFlattenOptions$c = memoFlattenOptions[current],\n group = _memoFlattenOptions$c.group,\n data = _memoFlattenOptions$c.data;\n if (!group && !data.disabled) {\n return current;\n }\n }\n return -1;\n };\n var _React$useState = React.useState(function () {\n return getEnabledActiveIndex(0);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var setActive = function setActive(index) {\n var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setActiveIndex(index);\n var info = {\n source: fromKeyboard ? 'keyboard' : 'mouse'\n };\n\n // Trigger active event\n var flattenItem = memoFlattenOptions[index];\n if (!flattenItem) {\n onActiveValue(null, -1, info);\n return;\n }\n onActiveValue(flattenItem.value, index, info);\n };\n\n // Auto active first item when list length or searchValue changed\n useEffect(function () {\n setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n }, [memoFlattenOptions.length, searchValue]);\n\n // https://github.com/ant-design/ant-design/issues/34975\n var isSelected = React.useCallback(function (value) {\n return rawValues.has(value) && mode !== 'combobox';\n }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n // Auto scroll to item position in single mode\n useEffect(function () {\n /**\n * React will skip `onChange` when component update.\n * `setActive` function will call root accessibility state update which makes re-render.\n * So we need to delay to let Input component trigger onChange first.\n */\n var timeoutId = setTimeout(function () {\n if (!multiple && open && rawValues.size === 1) {\n var value = Array.from(rawValues)[0];\n var index = memoFlattenOptions.findIndex(function (_ref) {\n var data = _ref.data;\n return data.value === value;\n });\n if (index !== -1) {\n setActive(index);\n scrollIntoView(index);\n }\n }\n });\n\n // Force trigger scrollbar visible when open\n if (open) {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(undefined);\n }\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [open, searchValue]);\n\n // ========================== Values ==========================\n var onSelectValue = function onSelectValue(value) {\n if (value !== undefined) {\n onSelect(value, {\n selected: !rawValues.has(value)\n });\n }\n\n // Single mode should always close by select\n if (!multiple) {\n toggleOpen(false);\n }\n };\n\n // ========================= Keyboard =========================\n React.useImperativeHandle(ref, function () {\n return {\n onKeyDown: function onKeyDown(event) {\n var which = event.which,\n ctrlKey = event.ctrlKey;\n switch (which) {\n // >>> Arrow keys & ctrl + n/p on Mac\n case KeyCode.N:\n case KeyCode.P:\n case KeyCode.UP:\n case KeyCode.DOWN:\n {\n var offset = 0;\n if (which === KeyCode.UP) {\n offset = -1;\n } else if (which === KeyCode.DOWN) {\n offset = 1;\n } else if (isPlatformMac() && ctrlKey) {\n if (which === KeyCode.N) {\n offset = 1;\n } else if (which === KeyCode.P) {\n offset = -1;\n }\n }\n if (offset !== 0) {\n var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n scrollIntoView(nextActiveIndex);\n setActive(nextActiveIndex, true);\n }\n break;\n }\n\n // >>> Select\n case KeyCode.ENTER:\n {\n // value\n var item = memoFlattenOptions[activeIndex];\n if (item && !item.data.disabled) {\n onSelectValue(item.value);\n } else {\n onSelectValue(undefined);\n }\n if (open) {\n event.preventDefault();\n }\n break;\n }\n\n // >>> Close\n case KeyCode.ESC:\n {\n toggleOpen(false);\n if (open) {\n event.stopPropagation();\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {},\n scrollTo: function scrollTo(index) {\n scrollIntoView(index);\n }\n };\n });\n\n // ========================== Render ==========================\n if (memoFlattenOptions.length === 0) {\n return /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n className: \"\".concat(itemPrefixCls, \"-empty\"),\n onMouseDown: onListMouseDown\n }, notFoundContent);\n }\n var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n return fieldNames[key];\n });\n var getLabel = function getLabel(item) {\n return item.label;\n };\n var renderItem = function renderItem(index) {\n var item = memoFlattenOptions[index];\n if (!item) return null;\n var itemData = item.data || {};\n var value = itemData.value;\n var group = item.group;\n var attrs = pickAttrs(itemData, true);\n var mergedLabel = getLabel(item);\n return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n }, attrs, {\n key: index,\n role: group ? 'presentation' : 'option',\n id: \"\".concat(id, \"_list_\").concat(index),\n \"aria-selected\": isSelected(value)\n }), value) : null;\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n role: \"listbox\",\n id: \"\".concat(id, \"_list\"),\n style: {\n height: 0,\n width: 0,\n overflow: 'hidden'\n }\n }, renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n itemKey: \"key\",\n ref: listRef,\n data: memoFlattenOptions,\n height: listHeight,\n itemHeight: listItemHeight,\n fullHeight: false,\n onMouseDown: onListMouseDown,\n onScroll: onPopupScroll,\n virtual: virtual\n }, function (item, itemIndex) {\n var _classNames;\n var group = item.group,\n groupOption = item.groupOption,\n data = item.data,\n label = item.label,\n value = item.value;\n var key = data.key;\n\n // Group\n if (group) {\n var _data$title;\n var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\")),\n title: groupTitle\n }, label !== undefined ? label : key);\n }\n var disabled = data.disabled,\n title = data.title,\n children = data.children,\n style = data.style,\n className = data.className,\n otherProps = _objectWithoutProperties(data, _excluded);\n var passedProps = omit(otherProps, omitFieldNameList);\n\n // Option\n var selected = isSelected(value);\n var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(optionPrefixCls, \"-selected\"), selected), _classNames));\n var mergedLabel = getLabel(item);\n var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n // https://github.com/ant-design/ant-design/issues/34145\n var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n // https://github.com/ant-design/ant-design/issues/26717\n var optionTitle = isTitleType(content) ? content.toString() : undefined;\n if (title !== undefined) {\n optionTitle = title;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), {\n \"aria-selected\": selected,\n className: optionClassName,\n title: optionTitle,\n onMouseMove: function onMouseMove() {\n if (activeIndex === itemIndex || disabled) {\n return;\n }\n setActive(itemIndex);\n },\n onClick: function onClick() {\n if (!disabled) {\n onSelectValue(value);\n }\n },\n style: style\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(optionPrefixCls, \"-content\")\n }, content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n className: \"\".concat(itemPrefixCls, \"-option-state\"),\n customizeIcon: menuItemSelectedIcon,\n customizeIconProps: {\n isSelected: selected\n }\n }, selected ? '✓' : null));\n }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nRefOptionList.displayName = 'OptionList';\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toNodeArray from \"rc-util/es/Children/toArray\";\nimport warning, { noteOnce } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { isMultiple } from \"../BaseSelect\";\nimport { toArray } from \"./commonUtil\";\nimport { convertChildrenToData } from \"./legacyUtil\";\nfunction warningProps(props) {\n var mode = props.mode,\n options = props.options,\n children = props.children,\n backfill = props.backfill,\n allowClear = props.allowClear,\n placeholder = props.placeholder,\n getInputElement = props.getInputElement,\n showSearch = props.showSearch,\n onSearch = props.onSearch,\n defaultOpen = props.defaultOpen,\n autoFocus = props.autoFocus,\n labelInValue = props.labelInValue,\n value = props.value,\n inputValue = props.inputValue,\n optionLabelProp = props.optionLabelProp;\n var multiple = isMultiple(mode);\n var mergedShowSearch = showSearch !== undefined ? showSearch : multiple || mode === 'combobox';\n var mergedOptions = options || convertChildrenToData(children);\n\n // `tags` should not set option as disabled\n warning(mode !== 'tags' || mergedOptions.every(function (opt) {\n return !opt.disabled;\n }), 'Please avoid setting option to disabled in tags mode since user can always type text as tag.');\n\n // `combobox` & `tags` should option be `string` type\n if (mode === 'tags' || mode === 'combobox') {\n var hasNumberValue = mergedOptions.some(function (item) {\n if (item.options) {\n return item.options.some(function (opt) {\n return typeof ('value' in opt ? opt.value : opt.key) === 'number';\n });\n }\n return typeof ('value' in item ? item.value : item.key) === 'number';\n });\n warning(!hasNumberValue, '`value` of Option should not use number type when `mode` is `tags` or `combobox`.');\n }\n\n // `combobox` should not use `optionLabelProp`\n warning(mode !== 'combobox' || !optionLabelProp, '`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly.');\n\n // Only `combobox` support `backfill`\n warning(mode === 'combobox' || !backfill, '`backfill` only works with `combobox` mode.');\n\n // Only `combobox` support `getInputElement`\n warning(mode === 'combobox' || !getInputElement, '`getInputElement` only work with `combobox` mode.');\n\n // Customize `getInputElement` should not use `allowClear` & `placeholder`\n noteOnce(mode !== 'combobox' || !getInputElement || !allowClear || !placeholder, 'Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`.');\n\n // `onSearch` should use in `combobox` or `showSearch`\n if (onSearch && !mergedShowSearch && mode !== 'combobox' && mode !== 'tags') {\n warning(false, '`onSearch` should work with `showSearch` instead of use alone.');\n }\n noteOnce(!defaultOpen || autoFocus, '`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed.');\n if (value !== undefined && value !== null) {\n var values = toArray(value);\n warning(!labelInValue || values.every(function (val) {\n return _typeof(val) === 'object' && ('key' in val || 'value' in val);\n }), '`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`');\n warning(!multiple || Array.isArray(value), '`value` should be array when `mode` is `multiple` or `tags`');\n }\n\n // Syntactic sugar should use correct children type\n if (children) {\n var invalidateChildType = null;\n toNodeArray(children).some(function (node) {\n if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n return false;\n }\n var _ref = node,\n type = _ref.type;\n if (type.isSelectOption) {\n return false;\n }\n if (type.isSelectOptGroup) {\n var allChildrenValid = toNodeArray(node.props.children).every(function (subNode) {\n if (! /*#__PURE__*/React.isValidElement(subNode) || !node.type || subNode.type.isSelectOption) {\n return true;\n }\n invalidateChildType = subNode.type;\n return false;\n });\n if (allChildrenValid) {\n return false;\n }\n return true;\n }\n invalidateChildType = type;\n return true;\n });\n if (invalidateChildType) {\n warning(false, \"`children` should be `Select.Option` or `Select.OptGroup` instead of `\".concat(invalidateChildType.displayName || invalidateChildType.name || invalidateChildType, \"`.\"));\n }\n warning(inputValue === undefined, '`inputValue` is deprecated, please use `searchValue` instead.');\n }\n}\n\n// value in Select option should not be null\n// note: OptGroup has options too\nexport function warningNullOptions(options, fieldNames) {\n if (options) {\n var recursiveOptions = function recursiveOptions(optionsList) {\n var inGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n for (var i = 0; i < optionsList.length; i++) {\n var option = optionsList[i];\n if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {\n warning(false, '`value` in Select options should not be `null`.');\n return true;\n }\n if (!inGroup && Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options]) && recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.options], true)) {\n break;\n }\n }\n };\n recursiveOptions(options);\n }\n}\nexport default warningProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"listHeight\", \"listItemHeight\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport { hasValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var id = props.id,\n mode = props.mode,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n backfill = props.backfill,\n fieldNames = props.fieldNames,\n inputValue = props.inputValue,\n searchValue = props.searchValue,\n onSearch = props.onSearch,\n _props$autoClearSearc = props.autoClearSearchValue,\n autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n onSelect = props.onSelect,\n onDeselect = props.onDeselect,\n _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n filterOption = props.filterOption,\n filterSort = props.filterSort,\n optionFilterProp = props.optionFilterProp,\n optionLabelProp = props.optionLabelProp,\n options = props.options,\n children = props.children,\n defaultActiveFirstOption = props.defaultActiveFirstOption,\n menuItemSelectedIcon = props.menuItemSelectedIcon,\n virtual = props.virtual,\n _props$listHeight = props.listHeight,\n listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n _props$listItemHeight = props.listItemHeight,\n listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n value = props.value,\n defaultValue = props.defaultValue,\n labelInValue = props.labelInValue,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedId = useId(id);\n var multiple = isMultiple(mode);\n var childrenAsData = !!(!options && children);\n var mergedFilterOption = React.useMemo(function () {\n if (filterOption === undefined && mode === 'combobox') {\n return false;\n }\n return filterOption;\n }, [filterOption, mode]);\n\n // ========================= FieldNames =========================\n var mergedFieldNames = React.useMemo(function () {\n return fillFieldNames(fieldNames, childrenAsData);\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [\n // We stringify fieldNames to avoid unnecessary re-renders.\n JSON.stringify(fieldNames), childrenAsData]\n /* eslint-enable react-hooks/exhaustive-deps */);\n\n // =========================== Search ===========================\n var _useMergedState = useMergedState('', {\n value: searchValue !== undefined ? searchValue : inputValue,\n postState: function postState(search) {\n return search || '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSearchValue = _useMergedState2[0],\n setSearchValue = _useMergedState2[1];\n\n // =========================== Option ===========================\n var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n var valueOptions = parsedOptions.valueOptions,\n labelOptions = parsedOptions.labelOptions,\n mergedOptions = parsedOptions.options;\n\n // ========================= Wrap Value =========================\n var convert2LabelValues = React.useCallback(function (draftValues) {\n // Convert to array\n var valueList = toArray(draftValues);\n\n // Convert to labelInValue type\n return valueList.map(function (val) {\n var rawValue;\n var rawLabel;\n var rawKey;\n var rawDisabled;\n var rawTitle;\n\n // Fill label & value\n if (isRawValue(val)) {\n rawValue = val;\n } else {\n var _val$value;\n rawKey = val.key;\n rawLabel = val.label;\n rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n }\n var option = valueOptions.get(rawValue);\n if (option) {\n var _option$key;\n // Fill missing props\n if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n // Warning if label not same as provided\n if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n }\n }\n return {\n label: rawLabel,\n value: rawValue,\n key: rawKey,\n disabled: rawDisabled,\n title: rawTitle\n };\n });\n }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n // =========================== Values ===========================\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n internalValue = _useMergedState4[0],\n setInternalValue = _useMergedState4[1];\n\n // Merged value with LabelValueType\n var rawLabeledValues = React.useMemo(function () {\n var _values$;\n var values = convert2LabelValues(internalValue);\n\n // combobox no need save value when it's no value\n if (mode === 'combobox' && !((_values$ = values[0]) !== null && _values$ !== void 0 && _values$.value)) {\n return [];\n }\n return values;\n }, [internalValue, convert2LabelValues, mode]);\n\n // Fill label with cache to avoid option remove\n var _useCache = useCache(rawLabeledValues, valueOptions),\n _useCache2 = _slicedToArray(_useCache, 2),\n mergedValues = _useCache2[0],\n getMixedOption = _useCache2[1];\n var displayValues = React.useMemo(function () {\n // `null` need show as placeholder instead\n // https://github.com/ant-design/ant-design/issues/25057\n if (!mode && mergedValues.length === 1) {\n var firstValue = mergedValues[0];\n if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n return [];\n }\n }\n return mergedValues.map(function (item) {\n var _item$label;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_item$label = item.label) !== null && _item$label !== void 0 ? _item$label : item.value\n });\n });\n }, [mode, mergedValues]);\n\n /** Convert `displayValues` to raw value type set */\n var rawValues = React.useMemo(function () {\n return new Set(mergedValues.map(function (val) {\n return val.value;\n }));\n }, [mergedValues]);\n React.useEffect(function () {\n if (mode === 'combobox') {\n var _mergedValues$;\n var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n setSearchValue(hasValue(strValue) ? String(strValue) : '');\n }\n }, [mergedValues]);\n\n // ======================= Display Option =======================\n // Create a placeholder item if not exist in `options`\n var createTagOption = useRefFunc(function (val, label) {\n var _ref;\n var mergedLabel = label !== null && label !== void 0 ? label : val;\n return _ref = {}, _defineProperty(_ref, mergedFieldNames.value, val), _defineProperty(_ref, mergedFieldNames.label, mergedLabel), _ref;\n });\n\n // Fill tag as option if mode is `tags`\n var filledTagOptions = React.useMemo(function () {\n if (mode !== 'tags') {\n return mergedOptions;\n }\n\n // >>> Tag mode\n var cloneOptions = _toConsumableArray(mergedOptions);\n\n // Check if value exist in options (include new patch item)\n var existOptions = function existOptions(val) {\n return valueOptions.has(val);\n };\n\n // Fill current value as option\n _toConsumableArray(mergedValues).sort(function (a, b) {\n return a.value < b.value ? -1 : 1;\n }).forEach(function (item) {\n var val = item.value;\n if (!existOptions(val)) {\n cloneOptions.push(createTagOption(val, item.label));\n }\n });\n return cloneOptions;\n }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n // Fill options with search value if needed\n var filledSearchOptions = React.useMemo(function () {\n if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n return item[optionFilterProp || 'value'] === mergedSearchValue;\n })) {\n return filteredOptions;\n }\n\n // Fill search value as option\n return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue]);\n var orderedFilteredOptions = React.useMemo(function () {\n if (!filterSort) {\n return filledSearchOptions;\n }\n return _toConsumableArray(filledSearchOptions).sort(function (a, b) {\n return filterSort(a, b);\n });\n }, [filledSearchOptions, filterSort]);\n var displayOptions = React.useMemo(function () {\n return flattenOptions(orderedFilteredOptions, {\n fieldNames: mergedFieldNames,\n childrenAsData: childrenAsData\n });\n }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n // =========================== Change ===========================\n var triggerChange = function triggerChange(values) {\n var labeledValues = convert2LabelValues(values);\n setInternalValue(labeledValues);\n if (onChange && (\n // Trigger event only when value changed\n labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n var _mergedValues$index;\n return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n }))) {\n var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n return v.value;\n });\n var returnOptions = labeledValues.map(function (v) {\n return injectPropsWithOption(getMixedOption(v.value));\n });\n onChange(\n // Value\n multiple ? returnValues : returnValues[0],\n // Option\n multiple ? returnOptions : returnOptions[0]);\n }\n };\n\n // ======================= Accessibility ========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeValue = _React$useState2[0],\n setActiveValue = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n accessibilityIndex = _React$useState4[0],\n setAccessibilityIndex = _React$useState4[1];\n var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n var onActiveValue = React.useCallback(function (active, index) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$source = _ref2.source,\n source = _ref2$source === void 0 ? 'keyboard' : _ref2$source;\n setAccessibilityIndex(index);\n if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n setActiveValue(String(active));\n }\n }, [backfill, mode]);\n\n // ========================= OptionList =========================\n var triggerSelect = function triggerSelect(val, selected, type) {\n var getSelectEnt = function getSelectEnt() {\n var _option$key2;\n var option = getMixedOption(val);\n return [labelInValue ? {\n label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n value: val,\n key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n } : val, injectPropsWithOption(option)];\n };\n if (selected && onSelect) {\n var _getSelectEnt = getSelectEnt(),\n _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n wrappedValue = _getSelectEnt2[0],\n _option = _getSelectEnt2[1];\n onSelect(wrappedValue, _option);\n } else if (!selected && onDeselect && type !== 'clear') {\n var _getSelectEnt3 = getSelectEnt(),\n _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n _wrappedValue = _getSelectEnt4[0],\n _option2 = _getSelectEnt4[1];\n onDeselect(_wrappedValue, _option2);\n }\n };\n\n // Used for OptionList selection\n var onInternalSelect = useRefFunc(function (val, info) {\n var cloneValues;\n\n // Single mode always trigger select only with option list\n var mergedSelect = multiple ? info.selected : true;\n if (mergedSelect) {\n cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n } else {\n cloneValues = mergedValues.filter(function (v) {\n return v.value !== val;\n });\n }\n triggerChange(cloneValues);\n triggerSelect(val, mergedSelect);\n\n // Clean search value if single or configured\n if (mode === 'combobox') {\n // setSearchValue(String(val));\n setActiveValue('');\n } else if (!isMultiple || autoClearSearchValue) {\n setSearchValue('');\n setActiveValue('');\n }\n });\n\n // ======================= Display Change =======================\n // BaseSelect display values change\n var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n triggerChange(nextValues);\n var type = info.type,\n values = info.values;\n if (type === 'remove' || type === 'clear') {\n values.forEach(function (item) {\n triggerSelect(item.value, false, type);\n });\n }\n };\n\n // =========================== Search ===========================\n var onInternalSearch = function onInternalSearch(searchText, info) {\n setSearchValue(searchText);\n setActiveValue(null);\n\n // [Submit] Tag mode should flush input\n if (info.source === 'submit') {\n var formatted = (searchText || '').trim();\n // prevent empty tags from appearing when you click the Enter button\n if (formatted) {\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n triggerChange(newRawValues);\n triggerSelect(formatted, true);\n setSearchValue('');\n }\n return;\n }\n if (info.source !== 'blur') {\n if (mode === 'combobox') {\n triggerChange(searchText);\n }\n onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchText);\n }\n };\n var onInternalSearchSplit = function onInternalSearchSplit(words) {\n var patchValues = words;\n if (mode !== 'tags') {\n patchValues = words.map(function (word) {\n var opt = labelOptions.get(word);\n return opt === null || opt === void 0 ? void 0 : opt.value;\n }).filter(function (val) {\n return val !== undefined;\n });\n }\n var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n triggerChange(newRawValues);\n newRawValues.forEach(function (newRawValue) {\n triggerSelect(newRawValue, true);\n });\n };\n\n // ========================== Context ===========================\n var selectContext = React.useMemo(function () {\n var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n flattenOptions: displayOptions,\n onActiveValue: onActiveValue,\n defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n onSelect: onInternalSelect,\n menuItemSelectedIcon: menuItemSelectedIcon,\n rawValues: rawValues,\n fieldNames: mergedFieldNames,\n virtual: realVirtual,\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n childrenAsData: childrenAsData\n });\n }, [parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, listHeight, listItemHeight, childrenAsData]);\n\n // ========================== Warning ===========================\n if (process.env.NODE_ENV !== 'production') {\n warningProps(props);\n warningNullOptions(mergedOptions, mergedFieldNames);\n }\n\n // ==============================================================\n // == Render ==\n // ==============================================================\n return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n value: selectContext\n }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n // >>> MISC\n id: mergedId,\n prefixCls: prefixCls,\n ref: ref,\n omitDomProps: OMIT_DOM_PROPS,\n mode: mode\n // >>> Values\n ,\n displayValues: displayValues,\n onDisplayValuesChange: onDisplayValuesChange\n // >>> Search\n ,\n searchValue: mergedSearchValue,\n onSearch: onInternalSearch,\n autoClearSearchValue: autoClearSearchValue,\n onSearchSplit: onInternalSearchSplit,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n // >>> OptionList\n ,\n OptionList: OptionList,\n emptyOptions: !displayOptions.length\n // >>> Accessibility\n ,\n activeValue: activeValue,\n activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nexport default function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n return React.useMemo(function () {\n var mergedOptions = options;\n var childrenAsData = !options;\n if (childrenAsData) {\n mergedOptions = convertChildrenToData(children);\n }\n var valueOptions = new Map();\n var labelOptions = new Map();\n var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n if (key && typeof key === 'string') {\n labelOptionsMap.set(option[key], option);\n }\n };\n function dig(optionList) {\n var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // for loop to speed up collection speed\n for (var i = 0; i < optionList.length; i += 1) {\n var option = optionList[i];\n if (!option[fieldNames.options] || isChildren) {\n valueOptions.set(option[fieldNames.value], option);\n setLabelOptions(labelOptions, option, fieldNames.label);\n // https://github.com/ant-design/ant-design/issues/35304\n setLabelOptions(labelOptions, option, optionFilterProp);\n setLabelOptions(labelOptions, option, optionLabelProp);\n } else {\n dig(option[fieldNames.options], true);\n }\n }\n }\n dig(mergedOptions);\n return {\n options: mergedOptions,\n valueOptions: valueOptions,\n labelOptions: labelOptions\n };\n }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n var cacheRef = React.useRef({\n values: new Map(),\n options: new Map()\n });\n var filledLabeledValues = React.useMemo(function () {\n var _cacheRef$current = cacheRef.current,\n prevValueCache = _cacheRef$current.values,\n prevOptionCache = _cacheRef$current.options;\n\n // Fill label by cache\n var patchedValues = labeledValues.map(function (item) {\n if (item.label === undefined) {\n var _prevValueCache$get;\n return _objectSpread(_objectSpread({}, item), {}, {\n label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n });\n }\n return item;\n });\n\n // Refresh cache\n var valueCache = new Map();\n var optionCache = new Map();\n patchedValues.forEach(function (item) {\n valueCache.set(item.value, item);\n optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n });\n cacheRef.current.values = valueCache;\n cacheRef.current.options = optionCache;\n return patchedValues;\n }, [labeledValues, valueOptions]);\n var getOption = React.useCallback(function (val) {\n return valueOptions.get(val) || cacheRef.current.options.get(val);\n }, [valueOptions]);\n return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\nexport default Simple;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (contextLocale) {\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : contextLocale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import * as React from 'react';\nimport { ConfigConsumer } from '.';\nimport Empty from '../empty';\nvar defaultRenderEmpty = function defaultRenderEmpty(componentName) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var getPrefixCls = _ref.getPrefixCls;\n var prefix = getPrefixCls('empty');\n switch (componentName) {\n case 'Table':\n case 'List':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE\n });\n case 'Select':\n case 'TreeSelect':\n case 'Cascader':\n case 'Transfer':\n case 'Mentions':\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n className: \"\".concat(prefix, \"-small\")\n });\n /* istanbul ignore next */\n default:\n // Should never hit if we take all the component into consider.\n return /*#__PURE__*/React.createElement(Empty, null);\n }\n });\n};\nexport default defaultRenderEmpty;","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DownOutlined = function DownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DownOutlinedSvg\n }));\n};\nDownOutlined.displayName = 'DownOutlined';\nexport default /*#__PURE__*/React.forwardRef(DownOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext } from '../form/context';\nimport { getTransitionDirection, getTransitionName } from '../_util/motion';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport getIcons from './utils/iconUtil';\nimport warning from '../_util/warning';\nimport { useCompactItemContext } from '../space/Compact';\nvar SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nvar InternalSelect = function InternalSelect(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? true : _a$bordered,\n className = _a.className,\n getPopupContainer = _a.getPopupContainer,\n dropdownClassName = _a.dropdownClassName,\n popupClassName = _a.popupClassName,\n _a$listHeight = _a.listHeight,\n listHeight = _a$listHeight === void 0 ? 256 : _a$listHeight,\n placement = _a.placement,\n _a$listItemHeight = _a.listItemHeight,\n listItemHeight = _a$listItemHeight === void 0 ? 24 : _a$listItemHeight,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n notFoundContent = _a.notFoundContent,\n customStatus = _a.status,\n showArrow = _a.showArrow,\n props = __rest(_a, [\"prefixCls\", \"bordered\", \"className\", \"getPopupContainer\", \"dropdownClassName\", \"popupClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"showArrow\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual,\n dropdownMatchSelectWidth = _React$useContext.dropdownMatchSelectWidth;\n var size = React.useContext(SizeContext);\n var prefixCls = getPrefixCls('select', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var mode = React.useMemo(function () {\n var m = props.mode;\n if (m === 'combobox') {\n return undefined;\n }\n if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n return 'combobox';\n }\n return m;\n }, [props.mode]);\n var isMultiple = mode === 'multiple' || mode === 'tags';\n var mergedShowArrow = showArrow !== undefined ? showArrow : props.loading || !(isMultiple || mode === 'combobox');\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'Select', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Form Status =====================\n var _useContext = useContext(FormItemInputContext),\n contextStatus = _useContext.status,\n hasFeedback = _useContext.hasFeedback,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Empty =====================\n var mergedNotFound;\n if (notFoundContent !== undefined) {\n mergedNotFound = notFoundContent;\n } else if (mode === 'combobox') {\n mergedNotFound = null;\n } else {\n mergedNotFound = (renderEmpty || defaultRenderEmpty)('Select');\n }\n // ===================== Icons =====================\n var _getIcons = getIcons(_extends(_extends({}, props), {\n multiple: isMultiple,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n showArrow: mergedShowArrow,\n prefixCls: prefixCls\n })),\n suffixIcon = _getIcons.suffixIcon,\n itemIcon = _getIcons.itemIcon,\n removeIcon = _getIcons.removeIcon,\n clearIcon = _getIcons.clearIcon;\n var selectProps = omit(props, ['suffixIcon', 'itemIcon']);\n var rcSelectRtlDropdownClassName = classNames(popupClassName || dropdownClassName, _defineProperty({}, \"\".concat(prefixCls, \"-dropdown-\").concat(direction), direction === 'rtl'));\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var mergedClassName = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergedSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, className);\n // ===================== Placement =====================\n var getPlacement = function getPlacement() {\n if (placement !== undefined) {\n return placement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(RcSelect, _extends({\n ref: ref,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth\n }, selectProps, {\n transitionName: getTransitionName(rootPrefixCls, getTransitionDirection(placement), props.transitionName),\n listHeight: listHeight,\n listItemHeight: listItemHeight,\n mode: mode,\n prefixCls: prefixCls,\n placement: getPlacement(),\n direction: direction,\n inputIcon: suffixIcon,\n menuItemSelectedIcon: itemIcon,\n removeIcon: removeIcon,\n clearIcon: clearIcon,\n notFoundContent: mergedNotFound,\n className: mergedClassName,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n dropdownClassName: rcSelectRtlDropdownClassName,\n showArrow: hasFeedback || showArrow,\n disabled: mergedDisabled\n }));\n};\nvar Select = /*#__PURE__*/React.forwardRef(InternalSelect);\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nexport default Select;","import CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nexport default function getIcons(_ref) {\n var suffixIcon = _ref.suffixIcon,\n clearIcon = _ref.clearIcon,\n menuItemSelectedIcon = _ref.menuItemSelectedIcon,\n removeIcon = _ref.removeIcon,\n loading = _ref.loading,\n multiple = _ref.multiple,\n hasFeedback = _ref.hasFeedback,\n prefixCls = _ref.prefixCls,\n showArrow = _ref.showArrow,\n feedbackIcon = _ref.feedbackIcon;\n // Clear Icon\n var mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n // Validation Feedback Icon\n var getSuffixIconNode = function getSuffixIconNode(arrowIcon) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, showArrow !== false && arrowIcon, hasFeedback && feedbackIcon);\n };\n // Arrow item icon\n var mergedSuffixIcon = null;\n if (suffixIcon !== undefined) {\n mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n } else if (loading) {\n mergedSuffixIcon = getSuffixIconNode( /*#__PURE__*/React.createElement(LoadingOutlined, {\n spin: true\n }));\n } else {\n var iconCls = \"\".concat(prefixCls, \"-suffix\");\n mergedSuffixIcon = function mergedSuffixIcon(_ref2) {\n var open = _ref2.open,\n showSearch = _ref2.showSearch;\n if (open && showSearch) {\n return getSuffixIconNode( /*#__PURE__*/React.createElement(SearchOutlined, {\n className: iconCls\n }));\n }\n return getSuffixIconNode( /*#__PURE__*/React.createElement(DownOutlined, {\n className: iconCls\n }));\n };\n }\n // Checked item icon\n var mergedItemIcon = null;\n if (menuItemSelectedIcon !== undefined) {\n mergedItemIcon = menuItemSelectedIcon;\n } else if (multiple) {\n mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n } else {\n mergedItemIcon = null;\n }\n var mergedRemoveIcon = null;\n if (removeIcon !== undefined) {\n mergedRemoveIcon = removeIcon;\n } else {\n mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n }\n return {\n clearIcon: mergedClearIcon,\n suffixIcon: mergedSuffixIcon,\n itemIcon: mergedItemIcon,\n removeIcon: mergedRemoveIcon\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nfunction isThenable(thing) {\n return !!(thing && !!thing.then);\n}\nvar ActionButton = function ActionButton(props) {\n var clickedRef = React.useRef(false);\n var ref = React.useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n loading = _useState2[0],\n setLoading = _useState2[1];\n var close = props.close;\n var onInternalClose = function onInternalClose() {\n close === null || close === void 0 ? void 0 : close.apply(void 0, arguments);\n };\n React.useEffect(function () {\n var timeoutId = null;\n if (props.autoFocus) {\n timeoutId = setTimeout(function () {\n var _a;\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();\n });\n }\n return function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, []);\n var handlePromiseOnOk = function handlePromiseOnOk(returnValueOfOnOk) {\n if (!isThenable(returnValueOfOnOk)) {\n return;\n }\n setLoading(true);\n returnValueOfOnOk.then(function () {\n setLoading(false, true);\n onInternalClose.apply(void 0, arguments);\n clickedRef.current = false;\n }, function (e) {\n // See: https://github.com/ant-design/ant-design/issues/6183\n setLoading(false, true);\n clickedRef.current = false;\n return Promise.reject(e);\n });\n };\n var onClick = function onClick(e) {\n var actionFn = props.actionFn;\n if (clickedRef.current) {\n return;\n }\n clickedRef.current = true;\n if (!actionFn) {\n onInternalClose();\n return;\n }\n var returnValueOfOnOk;\n if (props.emitEvent) {\n returnValueOfOnOk = actionFn(e);\n if (props.quitOnNullishReturnValue && !isThenable(returnValueOfOnOk)) {\n clickedRef.current = false;\n onInternalClose(e);\n return;\n }\n } else if (actionFn.length) {\n returnValueOfOnOk = actionFn(close);\n // https://github.com/ant-design/ant-design/issues/23358\n clickedRef.current = false;\n } else {\n returnValueOfOnOk = actionFn();\n if (!returnValueOfOnOk) {\n onInternalClose();\n return;\n }\n }\n handlePromiseOnOk(returnValueOfOnOk);\n };\n var type = props.type,\n children = props.children,\n prefixCls = props.prefixCls,\n buttonProps = props.buttonProps;\n return /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(type), {\n onClick: onClick,\n loading: loading,\n prefixCls: prefixCls\n }, buttonProps, {\n ref: ref\n }), children);\n};\nexport default ActionButton;","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n var reactId = useOriginId();\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return innerId;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n visible = props.visible,\n maskProps = props.maskProps,\n motionName = props.motionName;\n return /*#__PURE__*/React.createElement(CSSMotion, {\n key: \"mask\",\n visible: visible,\n motionName: motionName,\n leavedClassName: \"\".concat(prefixCls, \"-mask-hidden\")\n }, function (_ref, ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: _objectSpread(_objectSpread({}, motionStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionClassName)\n }, maskProps));\n });\n}","// =============================== Motion ===============================\nexport function getMotionName(prefixCls, transitionName, animationName) {\n var motionName = transitionName;\n if (!motionName && animationName) {\n motionName = \"\".concat(prefixCls, \"-\").concat(animationName);\n }\n return motionName;\n}\n// =============================== Offset ===============================\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n ret = d.body[method];\n }\n }\n return ret;\n}\nexport function offset(el) {\n var rect = el.getBoundingClientRect();\n var pos = {\n left: rect.left,\n top: rect.top\n };\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScroll(w);\n pos.top += getScroll(w, true);\n return pos;\n}","import * as React from 'react';\nexport default /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, _ref2) {\n var shouldUpdate = _ref2.shouldUpdate;\n return !shouldUpdate;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport MemoChildren from './MemoChildren';\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none'\n};\nvar Panel = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n title = props.title,\n ariaId = props.ariaId,\n footer = props.footer,\n closable = props.closable,\n closeIcon = props.closeIcon,\n onClose = props.onClose,\n children = props.children,\n bodyStyle = props.bodyStyle,\n bodyProps = props.bodyProps,\n modalRender = props.modalRender,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n holderRef = props.holderRef,\n visible = props.visible,\n forceRender = props.forceRender,\n width = props.width,\n height = props.height;\n // ================================= Refs =================================\n var sentinelStartRef = useRef();\n var sentinelEndRef = useRef();\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 ? void 0 : _sentinelStartRef$cur.focus();\n },\n changeActive: function changeActive(next) {\n var _document = document,\n activeElement = _document.activeElement;\n if (next && activeElement === sentinelEndRef.current) {\n sentinelStartRef.current.focus();\n } else if (!next && activeElement === sentinelStartRef.current) {\n sentinelEndRef.current.focus();\n }\n }\n };\n });\n // ================================ Style =================================\n var contentStyle = {};\n if (width !== undefined) {\n contentStyle.width = width;\n }\n if (height !== undefined) {\n contentStyle.height = height;\n }\n // ================================ Render ================================\n var footerNode;\n if (footer) {\n footerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer);\n }\n var headerNode;\n if (title) {\n headerNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\"),\n id: ariaId\n }, title));\n }\n var closer;\n if (closable) {\n closer = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onClose,\n \"aria-label\": \"Close\",\n className: \"\".concat(prefixCls, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }));\n }\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, closer, headerNode, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"\".concat(prefixCls, \"-body\"),\n style: bodyStyle\n }, bodyProps), children), footerNode);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"dialog-element\",\n role: \"dialog\",\n \"aria-labelledby\": title ? ariaId : null,\n \"aria-modal\": \"true\",\n ref: holderRef,\n style: _objectSpread(_objectSpread({}, style), contentStyle),\n className: classNames(prefixCls, className),\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }), /*#__PURE__*/React.createElement(MemoChildren, {\n shouldUpdate: visible || forceRender\n }, modalRender ? modalRender(content) : content), /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\"\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Panel.displayName = 'Panel';\n}\nexport default Panel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { offset } from '../../util';\nimport Panel from './Panel';\nvar Content = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n title = props.title,\n style = props.style,\n className = props.className,\n visible = props.visible,\n forceRender = props.forceRender,\n destroyOnClose = props.destroyOnClose,\n motionName = props.motionName,\n ariaId = props.ariaId,\n onVisibleChanged = props.onVisibleChanged,\n mousePosition = props.mousePosition;\n var dialogRef = useRef();\n // ============================= Style ==============================\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n transformOrigin = _React$useState2[0],\n setTransformOrigin = _React$useState2[1];\n var contentStyle = {};\n if (transformOrigin) {\n contentStyle.transformOrigin = transformOrigin;\n }\n function onPrepare() {\n var elementOffset = offset(dialogRef.current);\n setTransformOrigin(mousePosition ? \"\".concat(mousePosition.x - elementOffset.left, \"px \").concat(mousePosition.y - elementOffset.top, \"px\") : '');\n }\n // ============================= Render =============================\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n onVisibleChanged: onVisibleChanged,\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n forceRender: forceRender,\n motionName: motionName,\n removeOnLeave: destroyOnClose,\n ref: dialogRef\n }, function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(Panel, _extends({}, props, {\n ref: ref,\n title: title,\n ariaId: ariaId,\n prefixCls: prefixCls,\n holderRef: motionRef,\n style: _objectSpread(_objectSpread(_objectSpread({}, motionStyle), style), contentStyle),\n className: classNames(className, motionClassName)\n }));\n });\n});\nContent.displayName = 'Content';\nexport default Content;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Mask from './Mask';\nimport { getMotionName } from '../util';\nimport Content from './Content';\nexport default function Dialog(props) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dialog' : _props$prefixCls,\n zIndex = props.zIndex,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? false : _props$visible,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n wrapStyle = props.wrapStyle,\n wrapClassName = props.wrapClassName,\n wrapProps = props.wrapProps,\n onClose = props.onClose,\n afterClose = props.afterClose,\n transitionName = props.transitionName,\n animation = props.animation,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? true : _props$closable,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n maskStyle = props.maskStyle,\n maskProps = props.maskProps,\n rootClassName = props.rootClassName;\n var lastOutSideActiveElementRef = useRef();\n var wrapperRef = useRef();\n var contentRef = useRef();\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n // ========================== Init ==========================\n var ariaId = useId();\n function saveLastOutSideActiveElementRef() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n lastOutSideActiveElementRef.current = document.activeElement;\n }\n }\n function focusDialogContent() {\n if (!contains(wrapperRef.current, document.activeElement)) {\n var _contentRef$current;\n (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.focus();\n }\n }\n // ========================= Events =========================\n function onDialogVisibleChanged(newVisible) {\n // Try to focus\n if (newVisible) {\n focusDialogContent();\n } else {\n // Clean up scroll bar & focus back\n setAnimatedVisible(false);\n if (mask && lastOutSideActiveElementRef.current && focusTriggerAfterClose) {\n try {\n lastOutSideActiveElementRef.current.focus({\n preventScroll: true\n });\n } catch (e) {\n // Do nothing\n }\n lastOutSideActiveElementRef.current = null;\n }\n // Trigger afterClose only when change visible from true to false\n if (animatedVisible) {\n afterClose === null || afterClose === void 0 ? void 0 : afterClose();\n }\n }\n }\n function onInternalClose(e) {\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n }\n // >>> Content\n var contentClickRef = useRef(false);\n var contentTimeoutRef = useRef();\n // We need record content click incase content popup out of dialog\n var onContentMouseDown = function onContentMouseDown() {\n clearTimeout(contentTimeoutRef.current);\n contentClickRef.current = true;\n };\n var onContentMouseUp = function onContentMouseUp() {\n contentTimeoutRef.current = setTimeout(function () {\n contentClickRef.current = false;\n });\n };\n // >>> Wrapper\n // Close only when element not on dialog\n var onWrapperClick = null;\n if (maskClosable) {\n onWrapperClick = function onWrapperClick(e) {\n if (contentClickRef.current) {\n contentClickRef.current = false;\n } else if (wrapperRef.current === e.target) {\n onInternalClose(e);\n }\n };\n }\n function onWrapperKeyDown(e) {\n if (keyboard && e.keyCode === KeyCode.ESC) {\n e.stopPropagation();\n onInternalClose(e);\n return;\n }\n // keep focus inside dialog\n if (visible) {\n if (e.keyCode === KeyCode.TAB) {\n contentRef.current.changeActive(!e.shiftKey);\n }\n }\n }\n // ========================= Effect =========================\n useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n saveLastOutSideActiveElementRef();\n }\n }, [visible]);\n // Remove direct should also check the scroll bar update\n useEffect(function () {\n return function () {\n clearTimeout(contentTimeoutRef.current);\n };\n }, []);\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-root\"), rootClassName)\n }, pickAttrs(props, {\n data: true\n })), /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n visible: mask && visible,\n motionName: getMotionName(prefixCls, maskTransitionName, maskAnimation),\n style: _objectSpread({\n zIndex: zIndex\n }, maskStyle),\n maskProps: maskProps\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n tabIndex: -1,\n onKeyDown: onWrapperKeyDown,\n className: classNames(\"\".concat(prefixCls, \"-wrap\"), wrapClassName),\n ref: wrapperRef,\n onClick: onWrapperClick,\n style: _objectSpread(_objectSpread({\n zIndex: zIndex\n }, wrapStyle), {}, {\n display: !animatedVisible ? 'none' : null\n })\n }, wrapProps), /*#__PURE__*/React.createElement(Content, _extends({}, props, {\n onMouseDown: onContentMouseDown,\n onMouseUp: onContentMouseUp,\n ref: contentRef,\n closable: closable,\n ariaId: ariaId,\n prefixCls: prefixCls,\n visible: visible && animatedVisible,\n onClose: onInternalClose,\n onVisibleChanged: onDialogVisibleChanged,\n motionName: getMotionName(prefixCls, transitionName, animation)\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Portal from '@rc-component/portal';\nimport Dialog from './Dialog';\n// fix issue #10656\n/*\n * getContainer remarks\n * Custom container should not be return, because in the Portal component, it will remove the\n * return container element here, if the custom container is the only child of it's component,\n * like issue #10656, It will has a conflict with removeChild method in react-dom.\n * So here should add a child (div element) to custom container.\n * */\nvar DialogWrap = function DialogWrap(props) {\n var visible = props.visible,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n _props$destroyOnClose = props.destroyOnClose,\n destroyOnClose = _props$destroyOnClose === void 0 ? false : _props$destroyOnClose,\n _afterClose = props.afterClose;\n var _React$useState = React.useState(visible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n React.useEffect(function () {\n if (visible) {\n setAnimatedVisible(true);\n }\n }, [visible]);\n // // 渲染在当前 dom 里;\n // if (getContainer === false) {\n // return (\n // 2} // 不对 body 做任何操作。。\n // />\n // );\n // }\n // Destroy on close will remove wrapped div\n if (!forceRender && destroyOnClose && !animatedVisible) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: visible || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: visible || animatedVisible\n }, /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {\n destroyOnClose: destroyOnClose,\n afterClose: function afterClose() {\n _afterClose === null || _afterClose === void 0 ? void 0 : _afterClose();\n setAnimatedVisible(false);\n }\n })));\n};\nDialogWrap.displayName = 'Dialog';\nexport default DialogWrap;","import DialogWrap from './DialogWrap';\nimport Panel from './Dialog/Content/Panel';\nexport { Panel };\nexport default DialogWrap;","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport var canUseDocElement = function canUseDocElement() {\n return canUseDom() && window.document.documentElement;\n};\nexport { isStyleSupport };\nvar flexGapSupported;\nexport var detectFlexGapSupported = function detectFlexGapSupported() {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n var flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport { ConfigContext } from '../config-provider';\nimport { NoFormStyle } from '../form/context';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { NoCompactStyle } from '../space/Compact';\nimport { getTransitionName } from '../_util/motion';\nimport { canUseDocElement } from '../_util/styleChecker';\nimport warning from '../_util/warning';\nimport { getConfirmLocale } from './locale';\nvar mousePosition;\n// ref: https://github.com/ant-design/ant-design/issues/15795\nvar getClickPosition = function getClickPosition(e) {\n mousePosition = {\n x: e.pageX,\n y: e.pageY\n };\n // 100ms 内发生过点击事件,则从点击位置动画展示\n // 否则直接 zoom 展示\n // 这样可以兼容非点击方式展开\n setTimeout(function () {\n mousePosition = null;\n }, 100);\n};\n// 只有点击事件支持从鼠标位置动画展开\nif (canUseDocElement()) {\n document.documentElement.addEventListener('click', getClickPosition, true);\n}\nvar Modal = function Modal(props) {\n var _a;\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var handleCancel = function handleCancel(e) {\n var onCancel = props.onCancel;\n onCancel === null || onCancel === void 0 ? void 0 : onCancel(e);\n };\n var handleOk = function handleOk(e) {\n var onOk = props.onOk;\n onOk === null || onOk === void 0 ? void 0 : onOk(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Modal', \"`visible` will be removed in next major version, please use `open` instead.\") : void 0;\n var customizePrefixCls = props.prefixCls,\n footer = props.footer,\n visible = props.visible,\n _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n wrapClassName = props.wrapClassName,\n centered = props.centered,\n getContainer = props.getContainer,\n closeIcon = props.closeIcon,\n _props$focusTriggerAf = props.focusTriggerAfterClose,\n focusTriggerAfterClose = _props$focusTriggerAf === void 0 ? true : _props$focusTriggerAf,\n _props$width = props.width,\n width = _props$width === void 0 ? 520 : _props$width,\n restProps = __rest(props, [\"prefixCls\", \"footer\", \"visible\", \"open\", \"wrapClassName\", \"centered\", \"getContainer\", \"closeIcon\", \"focusTriggerAfterClose\", \"width\"]);\n var prefixCls = getPrefixCls('modal', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var defaultFooter = /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: getConfirmLocale()\n }, function (contextLocale) {\n var okText = props.okText,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n cancelText = props.cancelText,\n _props$confirmLoading = props.confirmLoading,\n confirmLoading = _props$confirmLoading === void 0 ? false : _props$confirmLoading;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({\n onClick: handleCancel\n }, props.cancelButtonProps), cancelText || contextLocale.cancelText), /*#__PURE__*/React.createElement(Button, _extends({}, convertLegacyProps(okType), {\n loading: confirmLoading,\n onClick: handleOk\n }, props.okButtonProps), okText !== null && okText !== void 0 ? okText : contextLocale.okText));\n });\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var wrapClassNameExtended = classNames(wrapClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-centered\"), !!centered), \"\".concat(prefixCls, \"-wrap-rtl\"), direction === 'rtl'));\n return /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, /*#__PURE__*/React.createElement(Dialog, _extends({\n width: width\n }, restProps, {\n getContainer: getContainer === undefined ? getContextPopupContainer : getContainer,\n prefixCls: prefixCls,\n wrapClassName: wrapClassNameExtended,\n footer: footer === undefined ? defaultFooter : footer,\n visible: open || visible,\n mousePosition: (_a = restProps.mousePosition) !== null && _a !== void 0 ? _a : mousePosition,\n onClose: handleCancel,\n closeIcon: closeIconToRender,\n focusTriggerAfterClose: focusTriggerAfterClose,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName)\n }))));\n};\nexport default Modal;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport ConfigProvider from '../config-provider';\nimport ActionButton from '../_util/ActionButton';\nimport { getTransitionName } from '../_util/motion';\nimport warning from '../_util/warning';\nimport Dialog from './Modal';\nvar ConfirmDialog = function ConfirmDialog(props) {\n var icon = props.icon,\n onCancel = props.onCancel,\n onOk = props.onOk,\n close = props.close,\n zIndex = props.zIndex,\n afterClose = props.afterClose,\n visible = props.visible,\n open = props.open,\n keyboard = props.keyboard,\n centered = props.centered,\n getContainer = props.getContainer,\n maskStyle = props.maskStyle,\n okText = props.okText,\n okButtonProps = props.okButtonProps,\n cancelText = props.cancelText,\n cancelButtonProps = props.cancelButtonProps,\n direction = props.direction,\n prefixCls = props.prefixCls,\n wrapClassName = props.wrapClassName,\n rootPrefixCls = props.rootPrefixCls,\n iconPrefixCls = props.iconPrefixCls,\n bodyStyle = props.bodyStyle,\n _props$closable = props.closable,\n closable = _props$closable === void 0 ? false : _props$closable,\n closeIcon = props.closeIcon,\n modalRender = props.modalRender,\n focusTriggerAfterClose = props.focusTriggerAfterClose;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Modal', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(visible === undefined, 'Modal', \"`visible` is deprecated, please use `open` instead.\") : void 0;\n }\n // 支持传入{ icon: null }来隐藏`Modal.confirm`默认的Icon\n var okType = props.okType || 'primary';\n var contentPrefixCls = \"\".concat(prefixCls, \"-confirm\");\n // 默认为 true,保持向下兼容\n var okCancel = 'okCancel' in props ? props.okCancel : true;\n var width = props.width || 416;\n var style = props.style || {};\n var mask = props.mask === undefined ? true : props.mask;\n // 默认为 false,保持旧版默认行为\n var maskClosable = props.maskClosable === undefined ? false : props.maskClosable;\n var autoFocusButton = props.autoFocusButton === null ? false : props.autoFocusButton || 'ok';\n var classString = classNames(contentPrefixCls, \"\".concat(contentPrefixCls, \"-\").concat(props.type), _defineProperty({}, \"\".concat(contentPrefixCls, \"-rtl\"), direction === 'rtl'), props.className);\n var cancelButton = okCancel && ( /*#__PURE__*/React.createElement(ActionButton, {\n actionFn: onCancel,\n close: close,\n autoFocus: autoFocusButton === 'cancel',\n buttonProps: cancelButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, cancelText));\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n direction: direction\n }, /*#__PURE__*/React.createElement(Dialog, {\n prefixCls: prefixCls,\n className: classString,\n wrapClassName: classNames(_defineProperty({}, \"\".concat(contentPrefixCls, \"-centered\"), !!props.centered), wrapClassName),\n onCancel: function onCancel() {\n return close === null || close === void 0 ? void 0 : close({\n triggerCancel: true\n });\n },\n open: open || visible,\n title: \"\",\n footer: \"\",\n transitionName: getTransitionName(rootPrefixCls, 'zoom', props.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', props.maskTransitionName),\n mask: mask,\n maskClosable: maskClosable,\n maskStyle: maskStyle,\n style: style,\n bodyStyle: bodyStyle,\n width: width,\n zIndex: zIndex,\n afterClose: afterClose,\n keyboard: keyboard,\n centered: centered,\n getContainer: getContainer,\n closable: closable,\n closeIcon: closeIcon,\n modalRender: modalRender,\n focusTriggerAfterClose: focusTriggerAfterClose\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body-wrapper\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-body\")\n }, icon, props.title === undefined ? null : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(contentPrefixCls, \"-title\")\n }, props.title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-content\")\n }, props.content)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(contentPrefixCls, \"-btns\")\n }, cancelButton, /*#__PURE__*/React.createElement(ActionButton, {\n type: okType,\n actionFn: onOk,\n close: close,\n autoFocus: autoFocusButton === 'ok',\n buttonProps: okButtonProps,\n prefixCls: \"\".concat(rootPrefixCls, \"-btn\")\n }, okText)))));\n};\nexport default ConfirmDialog;","var destroyFns = [];\nexport default destroyFns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport { render as reactRender, unmount as reactUnmount } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport { globalConfig } from '../config-provider';\nimport warning from '../_util/warning';\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\nvar defaultRootPrefixCls = '';\nfunction getRootPrefixCls() {\n return defaultRootPrefixCls;\n}\nexport default function confirm(config) {\n var container = document.createDocumentFragment();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n var currentConfig = _extends(_extends({}, config), {\n close: close,\n open: true\n });\n var timeoutId;\n function destroy() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (config.onCancel && triggerCancel) {\n config.onCancel.apply(config, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n for (var i = 0; i < destroyFns.length; i++) {\n var fn = destroyFns[i];\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n if (fn === close) {\n destroyFns.splice(i, 1);\n break;\n }\n }\n reactUnmount(container);\n }\n function render(_a) {\n var okText = _a.okText,\n cancelText = _a.cancelText,\n customizePrefixCls = _a.prefixCls,\n props = __rest(_a, [\"okText\", \"cancelText\", \"prefixCls\"]);\n clearTimeout(timeoutId);\n /**\n * https://github.com/ant-design/ant-design/issues/23623\n *\n * Sync render blocks React event. Let's make this async.\n */\n timeoutId = setTimeout(function () {\n var runtimeLocale = getConfirmLocale();\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n // because Modal.config \b set rootPrefixCls, which is different from other components\n var rootPrefixCls = getPrefixCls(undefined, getRootPrefixCls());\n var prefixCls = customizePrefixCls || \"\".concat(rootPrefixCls, \"-modal\");\n var iconPrefixCls = getIconPrefixCls();\n reactRender( /*#__PURE__*/React.createElement(ConfirmDialog, _extends({}, props, {\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n okText: okText || (props.okCancel ? runtimeLocale.okText : runtimeLocale.justOkText),\n cancelText: cancelText || runtimeLocale.cancelText\n })), container);\n });\n }\n function close() {\n var _this = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n currentConfig = _extends(_extends({}, currentConfig), {\n open: false,\n afterClose: function afterClose() {\n if (typeof config.afterClose === 'function') {\n config.afterClose();\n }\n destroy.apply(_this, args);\n }\n });\n // Legacy support\n if (currentConfig.visible) {\n delete currentConfig.visible;\n }\n render(currentConfig);\n }\n function update(configUpdate) {\n if (typeof configUpdate === 'function') {\n currentConfig = configUpdate(currentConfig);\n } else {\n currentConfig = _extends(_extends({}, currentConfig), configUpdate);\n }\n render(currentConfig);\n }\n render(currentConfig);\n destroyFns.push(close);\n return {\n destroy: close,\n update: update\n };\n}\nexport function withWarn(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'warning'\n });\n}\nexport function withInfo(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(InfoCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'info'\n });\n}\nexport function withSuccess(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CheckCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'success'\n });\n}\nexport function withError(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(CloseCircleOutlined, null),\n okCancel: false\n }, props), {\n type: 'error'\n });\n}\nexport function withConfirm(props) {\n return _extends(_extends({\n icon: /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null),\n okCancel: true\n }, props), {\n type: 'confirm'\n });\n}\nexport function modalGlobalConfig(_ref) {\n var rootPrefixCls = _ref.rootPrefixCls;\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Modal', 'Modal.config is deprecated. Please use ConfigProvider.config instead.') : void 0;\n defaultRootPrefixCls = rootPrefixCls;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport defaultLocale from '../../locale/default';\nimport ConfirmDialog from '../ConfirmDialog';\nvar HookModal = function HookModal(_ref, ref) {\n var afterClose = _ref.afterClose,\n config = _ref.config;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n var _React$useState3 = React.useState(config),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerConfig = _React$useState4[0],\n setInnerConfig = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction,\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('modal');\n var rootPrefixCls = getPrefixCls();\n var close = function close() {\n setOpen(false);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var triggerCancel = args.some(function (param) {\n return param && param.triggerCancel;\n });\n if (innerConfig.onCancel && triggerCancel) {\n innerConfig.onCancel.apply(innerConfig, [function () {}].concat(_toConsumableArray(args.slice(1))));\n }\n };\n React.useImperativeHandle(ref, function () {\n return {\n destroy: close,\n update: function update(newConfig) {\n setInnerConfig(function (originConfig) {\n return _extends(_extends({}, originConfig), newConfig);\n });\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Modal\",\n defaultLocale: defaultLocale.Modal\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(ConfirmDialog, _extends({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls\n }, innerConfig, {\n close: close,\n open: open,\n afterClose: afterClose,\n okText: innerConfig.okText || (innerConfig.okCancel ? contextLocale.okText : contextLocale.justOkText),\n direction: direction,\n cancelText: innerConfig.cancelText || contextLocale.cancelText\n }));\n });\n};\nexport default /*#__PURE__*/React.forwardRef(HookModal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport usePatchElement from '../../_util/hooks/usePatchElement';\nimport { withConfirm, withError, withInfo, withSuccess, withWarn } from '../confirm';\nimport HookModal from './HookModal';\nvar uuid = 0;\nvar ElementsHolder = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (_props, ref) {\n var _usePatchElement = usePatchElement(),\n _usePatchElement2 = _slicedToArray(_usePatchElement, 2),\n elements = _usePatchElement2[0],\n patchElement = _usePatchElement2[1];\n React.useImperativeHandle(ref, function () {\n return {\n patchElement: patchElement\n };\n }, []);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/React.createElement(React.Fragment, null, elements);\n}));\nexport default function useModal() {\n var holderRef = React.useRef(null);\n // ========================== Effect ==========================\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n actionQueue = _React$useState2[0],\n setActionQueue = _React$useState2[1];\n React.useEffect(function () {\n if (actionQueue.length) {\n var cloneQueue = _toConsumableArray(actionQueue);\n cloneQueue.forEach(function (action) {\n action();\n });\n setActionQueue([]);\n }\n }, [actionQueue]);\n // =========================== Hook ===========================\n var getConfirmFunc = React.useCallback(function (withFunc) {\n return function hookConfirm(config) {\n var _a;\n uuid += 1;\n var modalRef = /*#__PURE__*/React.createRef();\n var closeFunc;\n var modal = /*#__PURE__*/React.createElement(HookModal, {\n key: \"modal-\".concat(uuid),\n config: withFunc(config),\n ref: modalRef,\n afterClose: function afterClose() {\n closeFunc === null || closeFunc === void 0 ? void 0 : closeFunc();\n }\n });\n closeFunc = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.patchElement(modal);\n return {\n destroy: function destroy() {\n function destroyAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n if (modalRef.current) {\n destroyAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [destroyAction]);\n });\n }\n },\n update: function update(newConfig) {\n function updateAction() {\n var _a;\n (_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.update(newConfig);\n }\n if (modalRef.current) {\n updateAction();\n } else {\n setActionQueue(function (prev) {\n return [].concat(_toConsumableArray(prev), [updateAction]);\n });\n }\n }\n };\n };\n }, []);\n var fns = React.useMemo(function () {\n return {\n info: getConfirmFunc(withInfo),\n success: getConfirmFunc(withSuccess),\n error: getConfirmFunc(withError),\n warning: getConfirmFunc(withWarn),\n confirm: getConfirmFunc(withConfirm)\n };\n }, []);\n // eslint-disable-next-line react/jsx-key\n return [fns, /*#__PURE__*/React.createElement(ElementsHolder, {\n ref: holderRef\n })];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function usePatchElement() {\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n var patchElement = React.useCallback(function (element) {\n // append a new element to elements (and create a new ref)\n setElements(function (originElements) {\n return [].concat(_toConsumableArray(originElements), [element]);\n });\n // return a function that removes the new element out of elements (and create a new ref)\n // it works a little like useEffect\n return function () {\n setElements(function (originElements) {\n return originElements.filter(function (ele) {\n return ele !== element;\n });\n });\n };\n }, []);\n return [elements, patchElement];\n}","import confirm, { modalGlobalConfig, withConfirm, withError, withInfo, withSuccess, withWarn } from './confirm';\nimport destroyFns from './destroyFns';\nimport OriginModal from './Modal';\nimport useModal from './useModal';\nfunction modalWarn(props) {\n return confirm(withWarn(props));\n}\nvar Modal = OriginModal;\nModal.useModal = useModal;\nModal.info = function infoFn(props) {\n return confirm(withInfo(props));\n};\nModal.success = function successFn(props) {\n return confirm(withSuccess(props));\n};\nModal.error = function errorFn(props) {\n return confirm(withError(props));\n};\nModal.warning = modalWarn;\nModal.warn = modalWarn;\nModal.confirm = function confirmFn(props) {\n return confirm(withConfirm(props));\n};\nModal.destroyAll = function destroyAllFn() {\n while (destroyFns.length) {\n var close = destroyFns.pop();\n if (close) {\n close();\n }\n }\n};\nModal.config = modalGlobalConfig;\nexport default Modal;","// This icon file is generated automatically.\nvar SyncOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z\" } }] }, \"name\": \"sync\", \"theme\": \"outlined\" };\nexport default SyncOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SyncOutlinedSvg from \"@ant-design/icons-svg/es/asn/SyncOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SyncOutlined = function SyncOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SyncOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SyncOutlined.displayName = 'SyncOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SyncOutlined);","// This icon file is generated automatically.\nvar PlusCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"plus-circle\", \"theme\": \"outlined\" };\nexport default PlusCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusCircleOutlined = function PlusCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PlusCircleOutlined.displayName = 'PlusCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PlusCircleOutlined);","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, Input, message, Modal, Select } from 'antd';\nimport { PlusCircleOutlined, SyncOutlined } from '@ant-design/icons';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport './index.less';\n\n//@ts-ignore\nBigInt.prototype.toJSON = function () {\n return this.toString();\n};\n\nconst BatchApprove: FC = (props: any) => {\n const { launchpadActor, agent, agentType, whitelist } = props.use_agent;\n\n const { Option } = Select;\n const [initialing, setInitialing] = useState(false);\n const [collectionInfo, setCollectionInfo] = useState(0);\n const [myCollectionIds, setMyCollections] = useState([]);\n const [setting, setSetting] = useState(false);\n const [start, setStart] = useState(0);\n const [end, setEnd] = useState(0);\n const [tokenRangeParts, setTokenRangeParts] = useState<[number, number][]>([]);\n const [selectVisible, setSelectVisible] = useState(false);\n\n const handleSelect = async (c: number) => {\n if (initialing === true) {\n return;\n }\n setCollectionInfo(c);\n };\n\n const addTokenParts = () => {\n let newTokenRangeParts = Array.from(tokenRangeParts);\n newTokenRangeParts.push([start, end]);\n setTokenRangeParts(newTokenRangeParts);\n setSelectVisible(false);\n };\n\n const getCollection = async () => {\n setInitialing(true);\n const res = await launchpadActor.listCollections();\n setMyCollections(res);\n setInitialing(false);\n };\n\n useEffect(() => {\n getCollection();\n }, []);\n\n const handleFinish = async () => {\n setSetting(true);\n await handleAddToken();\n setSetting(false);\n };\n\n const handleAddToken = async () => {\n if (agentType == null) return;\n setSetting(true);\n let arr: number[] = [];\n tokenRangeParts.map((item) => {\n for (let i = item[0]; i <= item[1]; i++) {\n arr.push(i);\n }\n });\n let id = myCollectionIds[collectionInfo].id;\n id = id.toString();\n console.log(id);\n await launchpadActor.massEnableClaim(\n Principal.fromText(id),\n arr.sort(() => Math.random() - 0.5),\n );\n message.success('Succeed');\n };\n\n return (\n \n
Add Tokens for Launchpad
\n
\n
Collection
\n (\n <>\n {menu}\n
\n  Refresh your collection\n
\n \n )}\n >\n {myCollectionIds.map((c: any, index: number) => (\n \n ))}\n \n
\n\n
\n
Tokens
\n
The index starts from 0
\n {tokenRangeParts.map((item, index) => {\n return (\n
\n {item[0]} ~ {item[1]}\n
\n );\n })}\n }\n onClick={() => setSelectVisible(true)}\n />\n
\n\n \n Confirm\n \n setSelectVisible(false)}\n onOk={addTokenParts}\n destroyOnClose\n >\n {\n setStart(Number(e.target.value));\n }}\n placeholder=\"start index\"\n />\n  ~{' '}\n {\n setEnd(Number(e.target.value));\n }}\n placeholder=\"end index\"\n />\n \n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(BatchApprove);\n","export const to32bits = (num: number) => {\n let b = new ArrayBuffer(4);\n new DataView(b).setUint32(0, num);\n return Array.from(new Uint8Array(b));\n};\n\nexport const from32bits = (ba: number[]) => {\n let value = 0;\n for (let i = 0; i < 4; i++) {\n value = (value << 8) | ba[i];\n }\n return value;\n};\n","// tslint:disable:no-bitwise\n\n// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf: ArrayBufferLike): number {\n const b = new Uint8Array(buf);\n let crc = -1;\n\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n}\n","export const fromHexString = (hexString: string) =>\n new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map((byte) => parseInt(byte, 16)));\n\nexport const toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n","import { Principal } from '@dfinity/principal';\nimport { Buffer } from 'buffer';\nimport { to32bits } from './bit';\nimport { getCrc32 } from './crc';\nimport { toHexString } from './hex';\nimport { sha224 } from './sha224';\n\nexport const principalToAccountIdentifier = (p: string, s: number) => {\n const padding = Buffer.from('\\x0Aaccount-id');\n const array = new Uint8Array([\n ...padding,\n ...Principal.fromText(p).toUint8Array(),\n ...getSubAccountArray(s),\n ]);\n const hash = sha224(array);\n const checksum = to32bits(getCrc32(hash));\n const array2 = new Uint8Array([...checksum, ...hash]);\n return toHexString(array2);\n};\n\nexport const principalToAccountIdentifierArray = (p: string, s: number) => {\n const padding = Buffer.from('\\x0Aaccount-id');\n const array = new Uint8Array([\n ...padding,\n ...Principal.fromText(p).toUint8Array(),\n ...getSubAccountArray(s),\n ]);\n const hash = sha224(array);\n const checksum = to32bits(getCrc32(hash));\n const array2 = new Uint8Array([...checksum, ...hash]);\n return Array.from(array2);\n};\n\nconst getSubAccountArray = (s: number) => {\n if (Array.isArray(s)) {\n return s.concat(Array(32 - s.length).fill(0));\n } else {\n //32 bit number only\n return Array(28)\n .fill(0)\n .concat(to32bits(s ? s : 0));\n }\n};\n","import { sha224 as jsSha224 } from 'js-sha256';\n\n/**\n * Returns the SHA224 hash of the buffer.\n * @param data Arraybuffer to encode\n */\nexport function sha224(data: ArrayBuffer): Uint8Array {\n const shaObj = jsSha224.create();\n shaObj.update(data);\n return new Uint8Array(shaObj.array());\n}\n","import { useEffect, useRef, useState } from 'react';\nimport { Button, Card, Input, message, Select, Upload } from 'antd';\nimport { SyncOutlined, UploadOutlined } from '@ant-design/icons';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport { principalToAccountIdentifier } from '../../utils/principal';\nimport './index.less';\n\nconst AddWhitelist = (props: any) => {\n const { launchpadActor } = props.use_agent;\n const { Option } = Select;\n\n const [initialing, setInitialing] = useState(false);\n const [collectionInfo, setCollectionInfo] = useState(-1);\n const [myCollectionIds, setMyCollections] = useState([]);\n const [whitelist, setWhitelist] = useState('');\n const [wrongWl, setWrongWl] = useState('');\n\n const [loading, setLoading] = useState(false);\n\n const handleSelect = async (c: number) => {\n if (initialing === true) {\n return;\n }\n setCollectionInfo(c);\n };\n\n const getCollection = async () => {\n setInitialing(true);\n const res = await launchpadActor.listCollections();\n setMyCollections(res);\n setInitialing(false);\n };\n\n useEffect(() => {\n getCollection();\n }, []);\n\n const onFinish = async () => {\n if (collectionInfo < 0) {\n message.error('Choose a collection first');\n return;\n }\n setLoading(true);\n let id = myCollectionIds[collectionInfo].id;\n try {\n let wrong = '';\n const target = whitelist.split(',').map((principal: string) => {\n if (principal.length === 64 && /^[\\d\\w]+$/.test(principal)) return principal;\n else if (principal.length === 0) return '';\n else {\n try {\n return principalToAccountIdentifier(principal, 0);\n } catch (err) {\n console.log(err);\n }\n }\n wrong = wrong + principal + ',';\n setWrongWl(wrong);\n return '';\n });\n await launchpadActor.addWhitelist(id, target);\n message.success('Submit successfully');\n } catch (err) {\n console.error(err);\n message.error('something went wrong');\n }\n setLoading(false);\n };\n return (\n \n
Add Whitelist For Launchpad Sale
\n
\n
Collection
\n (\n <>\n {menu}\n
\n  Refresh your collection\n
\n \n )}\n >\n {myCollectionIds.map((c: any, index: number) => (\n \n ))}\n \n
\n\n
\n
Whitelist
\n {\n let reader = new FileReader();\n reader.readAsText(file);\n reader.onloadend = () => {\n //@ts-ignore\n const wl = reader.result.replaceAll('\\r\\n', ',');\n setWhitelist(wl);\n };\n return false;\n }}\n >\n \n \n setWhitelist(e.target.value)}\n autoSize\n value={whitelist}\n />\n
\n\n \n Confirm\n \n\n {wrongWl.length > 0 ? (\n <>\n
Wrong Address
\n {wrongWl}\n \n ) : null}\n
\n );\n};\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(AddWhitelist);\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar CheckableTag = function CheckableTag(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n checked = _a.checked,\n onChange = _a.onChange,\n onClick = _a.onClick,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var handleClick = function handleClick(e) {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var cls = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-checkable\"), true), \"\".concat(prefixCls, \"-checkable-checked\"), checked), className);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, restProps, {\n className: cls,\n onClick: handleClick\n }));\n};\nexport default CheckableTag;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes, PresetStatusColorTypes } from '../_util/colors';\nimport Wave from '../_util/wave';\nimport warning from '../_util/warning';\nimport CheckableTag from './CheckableTag';\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\"));\nvar PresetStatusColorRegex = new RegExp(\"^(\".concat(PresetStatusColorTypes.join('|'), \")$\"));\nvar InternalTag = function InternalTag(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n children = _a.children,\n icon = _a.icon,\n color = _a.color,\n onClose = _a.onClose,\n closeIcon = _a.closeIcon,\n _a$closable = _a.closable,\n closable = _a$closable === void 0 ? false : _a$closable,\n props = __rest(_a, [\"prefixCls\", \"className\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"closeIcon\", \"closable\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!('visible' in props), 'Tag', '`visible` will be removed in next major version, please use `visible && ` instead.') : void 0;\n }\n React.useEffect(function () {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n var isPresetColor = function isPresetColor() {\n if (!color) {\n return false;\n }\n return PresetColorRegex.test(color) || PresetStatusColorRegex.test(color);\n };\n var tagStyle = _extends({\n backgroundColor: color && !isPresetColor() ? color : undefined\n }, style);\n var presetColor = isPresetColor();\n var prefixCls = getPrefixCls('tag', customizePrefixCls);\n var tagClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(color), presetColor), \"\".concat(prefixCls, \"-has-color\"), color && !presetColor), \"\".concat(prefixCls, \"-hidden\"), !visible), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var handleCloseClick = function handleCloseClick(e) {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n if (!('visible' in props)) {\n setVisible(false);\n }\n };\n var renderCloseIcon = function renderCloseIcon() {\n if (closable) {\n return closeIcon ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n }, closeIcon)) : ( /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\"),\n onClick: handleCloseClick\n }));\n }\n return null;\n };\n var isNeedWave = 'onClick' in props || children && children.type === 'a';\n var tagProps = omit(props, ['visible']);\n var iconNode = icon || null;\n var kids = iconNode ? ( /*#__PURE__*/React.createElement(React.Fragment, null, iconNode, /*#__PURE__*/React.createElement(\"span\", null, children))) : children;\n var tagNode = /*#__PURE__*/React.createElement(\"span\", _extends({}, tagProps, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, renderCloseIcon());\n return isNeedWave ? /*#__PURE__*/React.createElement(Wave, null, tagNode) : tagNode;\n};\nvar Tag = /*#__PURE__*/React.forwardRef(InternalTag);\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (function () {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n flexible = _React$useState2[0],\n setFlexible = _React$useState2[1];\n React.useEffect(function () {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { SpaceContext } from '.';\nexport default function Item(_ref) {\n var className = _ref.className,\n direction = _ref.direction,\n index = _ref.index,\n marginDirection = _ref.marginDirection,\n children = _ref.children,\n split = _ref.split,\n wrap = _ref.wrap;\n var _React$useContext = React.useContext(SpaceContext),\n horizontalSize = _React$useContext.horizontalSize,\n verticalSize = _React$useContext.verticalSize,\n latestIndex = _React$useContext.latestIndex,\n supportFlexGap = _React$useContext.supportFlexGap;\n var style = {};\n if (!supportFlexGap) {\n if (direction === 'vertical') {\n if (index < latestIndex) {\n style = {\n marginBottom: horizontalSize / (split ? 2 : 1)\n };\n }\n } else {\n style = _extends(_extends({}, index < latestIndex && _defineProperty({}, marginDirection, horizontalSize / (split ? 2 : 1))), wrap && {\n paddingBottom: verticalSize\n });\n }\n }\n if (children === null || children === undefined) {\n return null;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: style\n }, children), index < latestIndex && split && ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(className, \"-split\"),\n style: style\n }, split)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport Item from './Item';\nimport Compact from './Compact';\nexport var SpaceContext = /*#__PURE__*/React.createContext({\n latestIndex: 0,\n horizontalSize: 0,\n verticalSize: 0,\n supportFlexGap: false\n});\nvar spaceSize = {\n small: 8,\n middle: 16,\n large: 24\n};\nfunction getNumberSize(size) {\n return typeof size === 'string' ? spaceSize[size] : size || 0;\n}\nvar Space = function Space(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n space = _React$useContext.space,\n directionConfig = _React$useContext.direction;\n var _props$size = props.size,\n size = _props$size === void 0 ? (space === null || space === void 0 ? void 0 : space.size) || 'small' : _props$size,\n align = props.align,\n className = props.className,\n children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'horizontal' : _props$direction,\n customizePrefixCls = props.prefixCls,\n split = props.split,\n style = props.style,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? false : _props$wrap,\n otherProps = __rest(props, [\"size\", \"align\", \"className\", \"children\", \"direction\", \"prefixCls\", \"split\", \"style\", \"wrap\"]);\n var supportFlexGap = useFlexGapSupport();\n var _React$useMemo = React.useMemo(function () {\n return (Array.isArray(size) ? size : [size, size]).map(function (item) {\n return getNumberSize(item);\n });\n }, [size]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n horizontalSize = _React$useMemo2[0],\n verticalSize = _React$useMemo2[1];\n var childNodes = toArray(children, {\n keepEmpty: true\n });\n var mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;\n var prefixCls = getPrefixCls('space', customizePrefixCls);\n var cn = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), directionConfig === 'rtl'), \"\".concat(prefixCls, \"-align-\").concat(mergedAlign), mergedAlign), className);\n var itemClassName = \"\".concat(prefixCls, \"-item\");\n var marginDirection = directionConfig === 'rtl' ? 'marginLeft' : 'marginRight';\n // Calculate latest one\n var latestIndex = 0;\n var nodes = childNodes.map(function (child, i) {\n if (child !== null && child !== undefined) {\n latestIndex = i;\n }\n var key = child && child.key || \"\".concat(itemClassName, \"-\").concat(i);\n return /*#__PURE__*/React.createElement(Item, {\n className: itemClassName,\n key: key,\n direction: direction,\n index: i,\n marginDirection: marginDirection,\n split: split,\n wrap: wrap\n }, child);\n });\n var spaceContext = React.useMemo(function () {\n return {\n horizontalSize: horizontalSize,\n verticalSize: verticalSize,\n latestIndex: latestIndex,\n supportFlexGap: supportFlexGap\n };\n }, [horizontalSize, verticalSize, latestIndex, supportFlexGap]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n var gapStyle = {};\n if (wrap) {\n gapStyle.flexWrap = 'wrap';\n // Patch for gap not support\n if (!supportFlexGap) {\n gapStyle.marginBottom = -verticalSize;\n }\n }\n if (supportFlexGap) {\n gapStyle.columnGap = horizontalSize;\n gapStyle.rowGap = verticalSize;\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: cn,\n style: _extends(_extends({}, gapStyle), style)\n }, otherProps), /*#__PURE__*/React.createElement(SpaceContext.Provider, {\n value: spaceContext\n }, nodes));\n};\nvar CompoundedSpace = Space;\nCompoundedSpace.Compact = Compact;\nexport default CompoundedSpace;","export var getRenderPropValue = function getRenderPropValue(propValue) {\n if (!propValue) {\n return null;\n }\n if (typeof propValue === 'function') {\n return propValue();\n }\n return propValue;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport Tooltip from '../tooltip';\nvar Overlay = function Overlay(_ref) {\n var title = _ref.title,\n content = _ref.content,\n prefixCls = _ref.prefixCls;\n return /*#__PURE__*/React.createElement(React.Fragment, null, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, getRenderPropValue(title)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, getRenderPropValue(content)));\n};\nvar Popover = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n title = props.title,\n content = props.content,\n _overlay = props._overlay,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'hover' : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.1 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$overlayStyle = props.overlayStyle,\n overlayStyle = _props$overlayStyle === void 0 ? {} : _props$overlayStyle,\n otherProps = __rest(props, [\"prefixCls\", \"title\", \"content\", \"_overlay\", \"placement\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var mergedOverlay = React.useMemo(function () {\n if (_overlay) {\n return _overlay;\n }\n if (!title && !content) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Overlay, {\n prefixCls: prefixCls,\n title: title,\n content: content\n });\n }, [_overlay, title, content, prefixCls]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n placement: placement,\n trigger: trigger,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayStyle: overlayStyle\n }, otherProps, {\n prefixCls: prefixCls,\n ref: ref,\n overlay: mergedOverlay,\n transitionName: getTransitionName(rootPrefixCls, 'zoom-big', otherProps.transitionName)\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popover.displayName = 'Popover';\n}\nexport default Popover;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { convertLegacyProps } from '../button/button';\nimport ActionButton from '../_util/ActionButton';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport { getRenderPropValue } from '../_util/getRenderPropValue';\nimport { ConfigContext } from '../config-provider';\nexport var Overlay = function Overlay(props) {\n var prefixCls = props.prefixCls,\n okButtonProps = props.okButtonProps,\n cancelButtonProps = props.cancelButtonProps,\n title = props.title,\n cancelText = props.cancelText,\n okText = props.okText,\n okType = props.okType,\n icon = props.icon,\n _props$showCancel = props.showCancel,\n showCancel = _props$showCancel === void 0 ? true : _props$showCancel,\n close = props.close,\n onConfirm = props.onConfirm,\n onCancel = props.onCancel;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Popconfirm\",\n defaultLocale: defaultLocale.Popconfirm\n }, function (contextLocale) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, icon && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-icon\")\n }, icon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message-title\")\n }, getRenderPropValue(title))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-buttons\")\n }, showCancel && ( /*#__PURE__*/React.createElement(Button, _extends({\n onClick: onCancel,\n size: \"small\"\n }, cancelButtonProps), cancelText !== null && cancelText !== void 0 ? cancelText : contextLocale.cancelText)), /*#__PURE__*/React.createElement(ActionButton, {\n buttonProps: _extends(_extends({\n size: 'small'\n }, convertLegacyProps(okType)), okButtonProps),\n actionFn: onConfirm,\n close: close,\n prefixCls: getPrefixCls('btn'),\n quitOnNullishReturnValue: true,\n emitEvent: true\n }, okText !== null && okText !== void 0 ? okText : contextLocale.okText)));\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar _this = this;\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Popover from '../popover';\nimport { cloneElement } from '../_util/reactNode';\nimport { Overlay } from './PurePanel';\nvar Popconfirm = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'top' : _props$placement,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'click' : _props$trigger,\n _props$okType = props.okType,\n okType = _props$okType === void 0 ? 'primary' : _props$okType,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(ExclamationCircleFilled, null) : _props$icon,\n children = props.children,\n overlayClassName = props.overlayClassName,\n onOpenChange = props.onOpenChange,\n onVisibleChange = props.onVisibleChange,\n restProps = __rest(props, [\"prefixCls\", \"placement\", \"trigger\", \"okType\", \"icon\", \"children\", \"overlayClassName\", \"onOpenChange\", \"onVisibleChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var _useMergedState = useMergedState(false, {\n value: props.open !== undefined ? props.open : props.visible,\n defaultValue: props.defaultOpen !== undefined ? props.defaultOpen : props.defaultVisible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n open = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n // const isDestroyed = useDestroyed();\n var settingOpen = function settingOpen(value, e) {\n setOpen(value, true);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(value, e);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(value, e);\n };\n var close = function close(e) {\n settingOpen(false, e);\n };\n var onConfirm = function onConfirm(e) {\n var _a;\n return (_a = props.onConfirm) === null || _a === void 0 ? void 0 : _a.call(_this, e);\n };\n var onCancel = function onCancel(e) {\n var _a;\n settingOpen(false, e);\n (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(_this, e);\n };\n var _onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC && open) {\n settingOpen(false, e);\n }\n };\n var onInternalOpenChange = function onInternalOpenChange(value) {\n var _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled;\n if (disabled) {\n return;\n }\n settingOpen(value);\n };\n var prefixCls = getPrefixCls('popover', customizePrefixCls);\n var prefixClsConfirm = getPrefixCls('popconfirm', customizePrefixCls);\n var overlayClassNames = classNames(prefixClsConfirm, overlayClassName);\n return /*#__PURE__*/React.createElement(Popover, _extends({}, restProps, {\n trigger: trigger,\n prefixCls: prefixCls,\n placement: placement,\n onOpenChange: onInternalOpenChange,\n open: open,\n ref: ref,\n overlayClassName: overlayClassNames,\n _overlay: /*#__PURE__*/React.createElement(Overlay, _extends({\n okType: okType,\n icon: icon\n }, props, {\n prefixCls: prefixCls,\n close: close,\n onConfirm: onConfirm,\n onCancel: onCancel\n }))\n }), cloneElement(children, {\n onKeyDown: function onKeyDown(e) {\n var _a, _b;\n if ( /*#__PURE__*/React.isValidElement(children)) {\n (_b = children === null || children === void 0 ? void 0 : (_a = children.props).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n _onKeyDown(e);\n }\n }));\n});\nexport default Popconfirm;","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\n\nexport default ColumnGroup;","/* istanbul ignore next */\n\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\n\nexport default Column;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\n\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n\n return Array.isArray(arr) ? arr : [arr];\n}\n\nexport function getPathValue(record, path) {\n // Skip if path is empty\n if (!path && typeof path !== 'number') {\n return record;\n }\n\n var pathList = toArray(path);\n var current = record;\n\n for (var i = 0; i < pathList.length; i += 1) {\n if (!current) {\n return null;\n }\n\n var prop = pathList[i];\n current = current[prop];\n }\n\n return current;\n}\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}","import * as React from 'react'; // Tell cell that browser support sticky\n\nvar StickyContext = /*#__PURE__*/React.createContext(false);\nexport default StickyContext;","import { createContext } from '../ContextSelector';\nvar HoverContext = createContext();\nexport default HoverContext;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport shallowEqual from 'shallowequal';\nexport function createContext() {\n var Context = /*#__PURE__*/React.createContext(null);\n\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n\n useLayoutEffect(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n\n return {\n Context: Context,\n Provider: Provider\n };\n}\nexport function useContextSelector(holder, selector) {\n var eventSelector = useEvent(selector);\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n\n var _React$useState3 = React.useState(function () {\n return eventSelector(context ? getValue() : null);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n value = _React$useState4[0],\n setValue = _React$useState4[1];\n\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n\n function trigger(nextValue) {\n setValue(function (prev) {\n var selectedValue = eventSelector(nextValue);\n return shallowEqual(prev, selectedValue) ? prev : selectedValue;\n });\n }\n\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return value;\n}","import * as React from 'react';\nvar BodyContext = /*#__PURE__*/React.createContext(null);\nexport default BodyContext;","import * as React from 'react';\nvar PerfContext = /*#__PURE__*/React.createContext({\n renderWithProps: false\n});\nexport default PerfContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"colSpan\", \"rowSpan\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport { supportRef } from \"rc-util/es/ref\";\nimport { getPathValue, validateValue } from '../utils/valueUtil';\nimport StickyContext from '../context/StickyContext';\nimport HoverContext from '../context/HoverContext';\nimport BodyContext from '../context/BodyContext';\nimport warning from \"rc-util/es/warning\";\nimport PerfContext from '../context/PerfContext';\nimport { useContextSelector } from '../ContextSelector';\n/** Check if cell is in hover range */\n\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\n\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\n\nfunction isRefComponent(component) {\n // String tag component also support ref\n if (typeof component === 'string') {\n return true;\n }\n\n return supportRef(component);\n}\n\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n var ellipsis = _ref.ellipsis,\n rowType = _ref.rowType,\n children = _ref.children;\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof children === 'string' || typeof children === 'number') {\n title = children.toString();\n } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n title = children.props.children;\n }\n }\n\n return title;\n};\n\nfunction Cell(_ref2, ref) {\n var _ref4, _ref5, _classNames;\n\n var prefixCls = _ref2.prefixCls,\n className = _ref2.className,\n record = _ref2.record,\n index = _ref2.index,\n renderIndex = _ref2.renderIndex,\n dataIndex = _ref2.dataIndex,\n render = _ref2.render,\n children = _ref2.children,\n _ref2$component = _ref2.component,\n Component = _ref2$component === void 0 ? 'td' : _ref2$component,\n colSpan = _ref2.colSpan,\n rowSpan = _ref2.rowSpan,\n fixLeft = _ref2.fixLeft,\n fixRight = _ref2.fixRight,\n firstFixLeft = _ref2.firstFixLeft,\n lastFixLeft = _ref2.lastFixLeft,\n firstFixRight = _ref2.firstFixRight,\n lastFixRight = _ref2.lastFixRight,\n appendNode = _ref2.appendNode,\n _ref2$additionalProps = _ref2.additionalProps,\n additionalProps = _ref2$additionalProps === void 0 ? {} : _ref2$additionalProps,\n ellipsis = _ref2.ellipsis,\n align = _ref2.align,\n rowType = _ref2.rowType,\n isSticky = _ref2.isSticky,\n hovering = _ref2.hovering,\n onHover = _ref2.onHover;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var perfRecord = React.useContext(PerfContext);\n var supportSticky = React.useContext(StickyContext);\n\n var _React$useContext = React.useContext(BodyContext),\n allColumnsFixedLeft = _React$useContext.allColumnsFixedLeft; // ==================== Child Node ====================\n\n\n var _React$useMemo = React.useMemo(function () {\n if (validateValue(children)) {\n return [children];\n }\n\n var value = getPathValue(record, dataIndex); // Customize render node\n\n var returnChildNode = value;\n var returnCellProps = undefined;\n\n if (render) {\n var renderData = render(value, record, renderIndex);\n\n if (isRenderCell(renderData)) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n }\n\n returnChildNode = renderData.children;\n returnCellProps = renderData.props;\n perfRecord.renderWithProps = true;\n } else {\n returnChildNode = renderData;\n }\n }\n\n return [returnChildNode, returnCellProps];\n }, [\n /* eslint-disable react-hooks/exhaustive-deps */\n // Always re-render if `renderWithProps`\n perfRecord.renderWithProps ? Math.random() : 0,\n /* eslint-enable */\n children, dataIndex, perfRecord, record, render, renderIndex]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n childNode = _React$useMemo2[0],\n legacyCellProps = _React$useMemo2[1];\n\n var mergedChildNode = childNode; // Not crash if final `childNode` is not validate ReactNode\n\n if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n mergedChildNode = null;\n }\n\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, mergedChildNode);\n }\n\n var _ref3 = legacyCellProps || {},\n cellColSpan = _ref3.colSpan,\n cellRowSpan = _ref3.rowSpan,\n cellStyle = _ref3.style,\n cellClassName = _ref3.className,\n restCellProps = _objectWithoutProperties(_ref3, _excluded);\n\n var mergedColSpan = (_ref4 = cellColSpan !== undefined ? cellColSpan : colSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n var mergedRowSpan = (_ref5 = cellRowSpan !== undefined ? cellRowSpan : rowSpan) !== null && _ref5 !== void 0 ? _ref5 : 1;\n\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n } // ====================== Fixed =======================\n\n\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n } // ====================== Align =======================\n\n\n var alignStyle = {};\n\n if (align) {\n alignStyle.textAlign = align;\n } // ====================== Hover =======================\n\n\n var onMouseEnter = function onMouseEnter(event) {\n var _additionalProps$onMo;\n\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 ? void 0 : _additionalProps$onMo.call(additionalProps, event);\n };\n\n var onMouseLeave = function onMouseLeave(event) {\n var _additionalProps$onMo2;\n\n if (record) {\n onHover(-1, -1);\n }\n\n additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 ? void 0 : _additionalProps$onMo2.call(additionalProps, event);\n }; // ====================== Render ======================\n\n\n var title = getTitleFromCellRenderChildren({\n rowType: rowType,\n ellipsis: ellipsis,\n children: childNode\n });\n\n var componentProps = _objectSpread(_objectSpread(_objectSpread({\n title: title\n }, restCellProps), additionalProps), {}, {\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null,\n className: classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering), _classNames), additionalProps.className, cellClassName),\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, additionalProps.style), alignStyle), fixedStyle), cellStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n ref: isRefComponent(Component) ? ref : null\n });\n\n return /*#__PURE__*/React.createElement(Component, componentProps, appendNode, mergedChildNode);\n}\n\nvar RefCell = /*#__PURE__*/React.forwardRef(Cell);\nRefCell.displayName = 'Cell';\nvar comparePropList = ['expanded', 'className', 'hovering'];\nvar MemoCell = /*#__PURE__*/React.memo(RefCell, function (prev, next) {\n if (next.shouldCellUpdate) {\n return (// Additional handle of expanded logic\n comparePropList.every(function (propName) {\n return prev[propName] === next[propName];\n }) && // User control update logic\n !next.shouldCellUpdate(next.record, prev.record)\n );\n }\n\n return shallowEqual(prev, next);\n});\n/** Inject hover data here, we still wish MemoCell keep simple `shouldCellUpdate` logic */\n\nvar WrappedCell = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var index = props.index,\n _props$additionalProp = props.additionalProps,\n additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n colSpan = props.colSpan,\n rowSpan = props.rowSpan;\n var cellColSpan = additionalProps.colSpan,\n cellRowSpan = additionalProps.rowSpan;\n var mergedColSpan = colSpan !== null && colSpan !== void 0 ? colSpan : cellColSpan;\n var mergedRowSpan = rowSpan !== null && rowSpan !== void 0 ? rowSpan : cellRowSpan;\n\n var _useContextSelector = useContextSelector(HoverContext, function (cxt) {\n var isHovering = inHoverRange(index, mergedRowSpan || 1, cxt === null || cxt === void 0 ? void 0 : cxt.startRow, cxt === null || cxt === void 0 ? void 0 : cxt.endRow);\n return {\n onHover: cxt === null || cxt === void 0 ? void 0 : cxt.onHover,\n hovering: isHovering\n };\n }),\n onHover = _useContextSelector.onHover,\n hovering = _useContextSelector.hovering;\n\n return /*#__PURE__*/React.createElement(MemoCell, _extends({}, props, {\n colSpan: mergedColSpan,\n rowSpan: mergedRowSpan,\n hovering: hovering,\n ref: ref,\n onHover: onHover\n }));\n});\nWrappedCell.displayName = 'WrappedCell';\nexport default WrappedCell;","import * as React from 'react';\nvar TableContext = /*#__PURE__*/React.createContext(null);\nexport default TableContext;","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[colEnd];\n }\n\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1];\n\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight;\n }\n\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport { getCellFixedInfo } from '../utils/fixUtil';\nimport { getColumnsKey } from '../utils/valueUtil';\n\nfunction HeaderRow(_ref) {\n var cells = _ref.cells,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns,\n RowComponent = _ref.rowComponent,\n CellComponent = _ref.cellComponent,\n onHeaderRow = _ref.onHeaderRow,\n index = _ref.index;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n direction = _React$useContext.direction;\n\n var rowProps;\n\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction);\n var additionalProps;\n\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n ellipsis: column.ellipsis,\n align: column.align,\n component: CellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n}\n\nHeaderRow.displayName = 'HeaderRow';\nexport default HeaderRow;","import * as React from 'react';\nimport HeaderRow from './HeaderRow';\nimport TableContext from '../context/TableContext';\n\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n } // Generate `rows` cell data\n\n\n fillRowCells(rootColumns, 0); // Handle `rowSpan`\n\n var rowCount = rows.length;\n\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n\n return rows;\n}\n\nfunction Header(_ref) {\n var stickyOffsets = _ref.stickyOffsets,\n columns = _ref.columns,\n flattenColumns = _ref.flattenColumns,\n onHeaderRow = _ref.onHeaderRow;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n getComponent = _React$useContext.getComponent;\n\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n}\n\nexport default Header;","import * as React from 'react';\nvar ExpandedRowContext = /*#__PURE__*/React.createContext(null);\nexport default ExpandedRowContext;","import * as React from 'react';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport ExpandedRowContext from '../context/ExpandedRowContext';\n\nfunction ExpandedRow(_ref) {\n var prefixCls = _ref.prefixCls,\n children = _ref.children,\n Component = _ref.component,\n cellComponent = _ref.cellComponent,\n className = _ref.className,\n expanded = _ref.expanded,\n colSpan = _ref.colSpan,\n isEmpty = _ref.isEmpty;\n\n var _React$useContext = React.useContext(TableContext),\n scrollbarSize = _React$useContext.scrollbarSize;\n\n var _React$useContext2 = React.useContext(ExpandedRowContext),\n fixHeader = _React$useContext2.fixHeader,\n fixColumn = _React$useContext2.fixColumn,\n componentWidth = _React$useContext2.componentWidth,\n horizonScroll = _React$useContext2.horizonScroll; // Cache render node\n\n\n return React.useMemo(function () {\n var contentNode = children;\n\n if (isEmpty ? horizonScroll : fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, componentWidth !== 0 && contentNode);\n }\n\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n }, [children, Component, className, expanded, colSpan, isEmpty, scrollbarSize, componentWidth, fixColumn, fixHeader, horizonScroll]);\n}\n\nexport default ExpandedRow;","import * as React from 'react';\nvar ResizeContext = /*#__PURE__*/React.createContext(null);\nexport default ResizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport BodyContext from '../context/BodyContext';\nimport { getColumnsKey } from '../utils/valueUtil';\nimport ExpandedRow from './ExpandedRow';\n\nfunction BodyRow(props) {\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n renderIndex = props.renderIndex,\n rowKey = props.rowKey,\n rowExpandable = props.rowExpandable,\n expandedKeys = props.expandedKeys,\n onRow = props.onRow,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n childrenColumnName = props.childrenColumnName;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n fixedInfoList = _React$useContext.fixedInfoList;\n\n var _React$useContext2 = React.useContext(BodyContext),\n flattenColumns = _React$useContext2.flattenColumns,\n expandableType = _React$useContext2.expandableType,\n expandRowByClick = _React$useContext2.expandRowByClick,\n onTriggerExpand = _React$useContext2.onTriggerExpand,\n rowClassName = _React$useContext2.rowClassName,\n expandedRowClassName = _React$useContext2.expandedRowClassName,\n indentSize = _React$useContext2.indentSize,\n expandIcon = _React$useContext2.expandIcon,\n expandedRowRender = _React$useContext2.expandedRowRender,\n expandIconColumnIndex = _React$useContext2.expandIconColumnIndex;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n expandRended = _React$useState2[0],\n setExpandRended = _React$useState2[1];\n\n var expanded = expandedKeys && expandedKeys.has(props.recordKey);\n React.useEffect(function () {\n if (expanded) {\n setExpandRended(true);\n }\n }, [expanded]);\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record)); // Only when row is not expandable and `children` exist in record\n\n var nestExpandable = expandableType === 'nest';\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var mergedExpandable = rowSupportExpand || nestExpandable; // ======================== Expandable =========================\n\n var onExpandRef = React.useRef(onTriggerExpand);\n onExpandRef.current = onTriggerExpand;\n\n var onInternalTriggerExpand = function onInternalTriggerExpand() {\n onExpandRef.current.apply(onExpandRef, arguments);\n }; // =========================== onRow ===========================\n\n\n var additionalProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, index);\n\n var onClick = function onClick(event) {\n var _additionalProps$onCl;\n\n if (expandRowByClick && mergedExpandable) {\n onInternalTriggerExpand(record, event);\n }\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 additionalProps === null || additionalProps === void 0 ? void 0 : (_additionalProps$onCl = additionalProps.onClick) === null || _additionalProps$onCl === void 0 ? void 0 : _additionalProps$onCl.call.apply(_additionalProps$onCl, [additionalProps, event].concat(args));\n }; // ======================== Base tr row ========================\n\n\n var computeRowClassName;\n\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, index, indent);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, additionalProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), computeRowClassName, additionalProps && additionalProps.className),\n style: _objectSpread(_objectSpread({}, style), additionalProps ? additionalProps.style : null),\n onClick: onClick\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex]; // ============= Used for nest expandable =============\n\n var appendCellNode;\n\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onInternalTriggerExpand\n }));\n }\n\n var additionalCellProps;\n\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n component: cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate,\n expanded: appendCellNode && expanded\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n })); // ======================== Expand Row =========================\n\n var expandRowNode;\n\n if (rowSupportExpand && (expandRended || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var computedExpandedRowClassName = expandedRowClassName && expandedRowClassName(record, index, indent);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), computedExpandedRowClassName),\n prefixCls: prefixCls,\n component: RowComponent,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length,\n isEmpty: false\n }, expandContent);\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\n\nBodyRow.displayName = 'BodyRow';\nexport default BodyRow;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react'; // recursion (flat tree structure)\n\nfunction flatRecord(record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n var arr = [];\n arr.push({\n record: record,\n indent: indent,\n index: index\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n var tempArr = flatRecord(record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n arr.push.apply(arr, _toConsumableArray(tempArr));\n }\n }\n\n return arr;\n}\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\n\n\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.size) {\n var temp = []; // collect flattened record\n\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var record = data[i];\n temp.push.apply(temp, _toConsumableArray(flatRecord(record, 0, childrenColumnName, expandedKeys, getRowKey, i)));\n }\n\n return temp;\n }\n\n return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n return {\n record: item,\n indent: 0,\n index: index\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n data: columnKey\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from './MeasureCell';\nexport default function MeasureRow(_ref) {\n var prefixCls = _ref.prefixCls,\n columnsKey = _ref.columnsKey,\n onColumnResize = _ref.onColumnResize;\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n onBatchResize: function onBatchResize(infoList) {\n infoList.forEach(function (_ref2) {\n var columnKey = _ref2.data,\n size = _ref2.size;\n onColumnResize(columnKey, size.offsetWidth);\n });\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport TableContext from '../context/TableContext';\nimport ExpandedRow from './ExpandedRow';\nimport BodyContext from '../context/BodyContext';\nimport { getColumnsKey } from '../utils/valueUtil';\nimport ResizeContext from '../context/ResizeContext';\nimport BodyRow from './BodyRow';\nimport useFlattenRecords from '../hooks/useFlattenRecords';\nimport HoverContext from '../context/HoverContext';\nimport PerfContext from '../context/PerfContext';\nimport MeasureRow from './MeasureRow';\n\nfunction Body(_ref) {\n var data = _ref.data,\n getRowKey = _ref.getRowKey,\n measureColumnWidth = _ref.measureColumnWidth,\n expandedKeys = _ref.expandedKeys,\n onRow = _ref.onRow,\n rowExpandable = _ref.rowExpandable,\n emptyNode = _ref.emptyNode,\n childrenColumnName = _ref.childrenColumnName;\n\n var _React$useContext = React.useContext(ResizeContext),\n onColumnResize = _React$useContext.onColumnResize;\n\n var _React$useContext2 = React.useContext(TableContext),\n prefixCls = _React$useContext2.prefixCls,\n getComponent = _React$useContext2.getComponent;\n\n var _React$useContext3 = React.useContext(BodyContext),\n flattenColumns = _React$useContext3.flattenColumns;\n\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey); // =================== Performance ====================\n\n var perfRef = React.useRef({\n renderWithProps: false\n }); // ====================== Hover =======================\n\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []); // ====================== Render ======================\n\n var bodyNode = React.useMemo(function () {\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var rows;\n\n if (data.length) {\n rows = flattenData.map(function (item, idx) {\n var record = item.record,\n indent = item.indent,\n renderIndex = item.index;\n var key = getRowKey(record, idx);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n recordKey: key,\n index: idx,\n renderIndex: renderIndex,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n expandedKeys: expandedKeys,\n onRow: onRow,\n getRowKey: getRowKey,\n rowExpandable: rowExpandable,\n childrenColumnName: childrenColumnName,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n component: trComponent,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length,\n isEmpty: true\n }, emptyNode);\n }\n\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n prefixCls: prefixCls,\n columnsKey: columnsKey,\n onColumnResize: onColumnResize\n }), rows);\n }, [data, prefixCls, onRow, measureColumnWidth, expandedKeys, getRowKey, getComponent, emptyNode, flattenColumns, childrenColumnName, onColumnResize, rowExpandable, flattenData]);\n return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n value: perfRef.current\n }, /*#__PURE__*/React.createElement(HoverContext.Provider, {\n value: {\n startRow: startRow,\n endRow: endRow,\n onHover: onHover\n }\n }, bodyNode));\n}\n\nvar MemoBody = /*#__PURE__*/React.memo(Body);\nMemoBody.displayName = 'Body';\nexport default MemoBody;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n\n var config;\n\n if ('expandable' in props) {\n config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n } else {\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n\n config = legacyExpandableConfig;\n }\n\n if (config.showExpandColumn === false) {\n config.expandIconColumnIndex = -1;\n }\n\n return config;\n}","export var EXPAND_COLUMN = {};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { INTERNAL_COL_DEFINE } from '../utils/legacyUtil';\nimport { EXPAND_COLUMN } from '../constant';\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var column = _objectSpread({\n key: key\n }, restProps);\n\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n\n return column;\n });\n}\n\nfunction flatColumns(columns) {\n return columns.reduce(function (list, column) {\n var fixed = column.fixed; // Convert `fixed='true'` to `fixed='left'` instead\n\n var parsedFixed = fixed === true ? 'left' : fixed;\n var subColumns = column.children;\n\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({}, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\n\nfunction warningFixed(flattenColumns) {\n var allFixLeft = true;\n\n for (var i = 0; i < flattenColumns.length; i += 1) {\n var col = flattenColumns[i];\n\n if (allFixLeft && col.fixed !== 'left') {\n allFixLeft = false;\n } else if (!allFixLeft && col.fixed === 'left') {\n warning(false, \"Index \".concat(i - 1, \" of `columns` missing `fixed='left'` prop.\"));\n break;\n }\n }\n\n var allFixRight = true;\n\n for (var _i = flattenColumns.length - 1; _i >= 0; _i -= 1) {\n var _col = flattenColumns[_i];\n\n if (allFixRight && _col.fixed !== 'right') {\n allFixRight = false;\n } else if (!allFixRight && _col.fixed === 'right') {\n warning(false, \"Index \".concat(_i + 1, \" of `columns` missing `fixed='right'` prop.\"));\n break;\n }\n }\n}\n\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2); // Convert `fixed='left'` to `fixed='right'` instead\n\n\n var parsedFixed = fixed;\n\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n/**\n * Parse `columns` & `children` into `columns`.\n */\n\n\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n columnTitle = _ref2.columnTitle,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed;\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]); // ========================== Expand ==========================\n\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var _expandColumn;\n\n var cloneColumns = baseColumns.slice(); // >>> Warning if use `expandIconColumnIndex`\n\n if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n } // >>> Insert expand column if not exist\n\n\n if (!cloneColumns.includes(EXPAND_COLUMN)) {\n var expandColIndex = expandIconColumnIndex || 0;\n\n if (expandColIndex >= 0) {\n cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n }\n } // >>> Deduplicate additional expand column\n\n\n if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n return c === EXPAND_COLUMN;\n }).length > 1) {\n warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n }\n\n var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== EXPAND_COLUMN || index === expandColumnIndex;\n }); // >>> Check if expand column need to fixed\n\n var prevColumn = baseColumns[expandColumnIndex];\n var fixedColumn;\n\n if ((fixed === 'left' || fixed) && !expandIconColumnIndex) {\n fixedColumn = 'left';\n } else if ((fixed === 'right' || fixed) && expandIconColumnIndex === baseColumns.length) {\n fixedColumn = 'right';\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n } // >>> Create expandable column\n\n\n var expandColumn = (_expandColumn = {}, _defineProperty(_expandColumn, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n columnType: 'EXPAND_COLUMN'\n }), _defineProperty(_expandColumn, \"title\", columnTitle), _defineProperty(_expandColumn, \"fixed\", fixedColumn), _defineProperty(_expandColumn, \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), _defineProperty(_expandColumn, \"width\", columnWidth), _defineProperty(_expandColumn, \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n\n return icon;\n }), _expandColumn);\n return cloneColumns.map(function (col) {\n return col === EXPAND_COLUMN ? expandColumn : col;\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n }\n\n return baseColumns.filter(function (col) {\n return col !== EXPAND_COLUMN;\n });\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]); // ========================= Transform ========================\n\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n } // Always provides at least one column for table display\n\n\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n\n return finalColumns;\n }, [transformColumns, withExpandColumns, direction]); // ========================== Flatten =========================\n\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n\n return flatColumns(mergedColumns);\n }, [mergedColumns, direction]); // Only check out of production since it's waste for each render\n\n if (process.env.NODE_ENV !== 'production') {\n warningFixed(direction === 'rtl' ? flattenColumns.slice().reverse() : flattenColumns);\n }\n\n return [mergedColumns, flattenColumns];\n}\n\nexport default useColumns;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\n\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n/** Lock frame, when frame pass reset the lock. */\n\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n\n function getState() {\n return frameRef.current;\n }\n\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\n\nfunction useStickyOffsets(colWidths, columnCount, direction) {\n var stickyOffsets = useMemo(function () {\n var leftOffsets = [];\n var rightOffsets = [];\n var left = 0;\n var right = 0;\n\n for (var start = 0; start < columnCount; start += 1) {\n if (direction === 'rtl') {\n // Left offset\n rightOffsets[start] = right;\n right += colWidths[start] || 0; // Right offset\n\n var end = columnCount - start - 1;\n leftOffsets[end] = left;\n left += colWidths[end] || 0;\n } else {\n // Left offset\n leftOffsets[start] = left;\n left += colWidths[start] || 0; // Right offset\n\n var _end = columnCount - start - 1;\n\n rightOffsets[_end] = right;\n right += colWidths[_end] || 0;\n }\n }\n\n return {\n left: leftOffsets,\n right: rightOffsets\n };\n }, [colWidths, columnCount, direction]);\n return stickyOffsets;\n}\n\nexport default useStickyOffsets;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from './utils/legacyUtil';\n\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var cols = [];\n var len = columCount || columns.length; // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n\n var mustInsert = false;\n\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = column && column[INTERNAL_COL_DEFINE];\n\n if (width || additionalProps || mustInsert) {\n var _ref2 = additionalProps || {},\n columnType = _ref2.columnType,\n restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width\n }\n }, restAdditionalProps)));\n mustInsert = true;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\n\nexport default ColGroup;","import * as React from 'react';\n\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\n\nexport default Panel;","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from './Cell';\nimport Row from './Row';\n/**\n * Syntactic sugar. Do not support HOC.\n */\n\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\n\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SummaryContext from './SummaryContext';\nimport Cell from '../Cell';\nimport TableContext from '../context/TableContext';\nimport { getCellFixedInfo } from '../utils/fixUtil';\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n direction = _React$useContext.direction;\n\n var _React$useContext2 = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext2.scrollColumnIndex,\n stickyOffsets = _React$useContext2.stickyOffsets,\n flattenColumns = _React$useContext2.flattenColumns;\n\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n colSpan: mergedColSpan,\n rowSpan: rowSpan,\n render: function render() {\n return children;\n }\n }, fixedInfo));\n}","import * as React from 'react';\nimport TableContext from '../context/TableContext';\nimport Summary from './Summary';\nimport SummaryContext from './SummaryContext';\n\nfunction Footer(_ref) {\n var children = _ref.children,\n stickyOffsets = _ref.stickyOffsets,\n flattenColumns = _ref.flattenColumns;\n var tableContext = React.useContext(TableContext);\n var prefixCls = tableContext.prefixCls;\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: (scrollColumn === null || scrollColumn === void 0 ? void 0 : scrollColumn.scrollbar) ? lastColumnIndex : null\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\n\nexport default Footer;\nexport var FooterComponents = Summary;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var _classNames;\n\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-expanded\"), expanded), _defineProperty(_classNames, \"\".concat(prefixCls, \"-row-collapsed\"), !expanded), _classNames)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n\n dig(data);\n return keys;\n}","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport classNames from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport TableContext from './context/TableContext';\nimport { useLayoutState } from './hooks/useFrame';\n\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container;\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls;\n\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: false\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n\n var onMouseMove = function onMouseMove(event) {\n var _window;\n\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n\n return;\n }\n\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n\n if (left <= 0) {\n left = 0;\n }\n\n if (left + scrollBarWidth >= bodyWidth) {\n left = bodyWidth - scrollBarWidth;\n }\n\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n };\n\n var onContainerScroll = function onContainerScroll() {\n if (!scrollBodyRef.current) {\n return;\n }\n\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n };\n\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n onContainerScroll();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n React.useEffect(function () {\n var onScrollListener = addEventListener(container, 'scroll', onContainerScroll, false);\n var onResizeListener = addEventListener(window, 'resize', onContainerScroll, false);\n return function () {\n onScrollListener.remove();\n onResizeListener.remove();\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n\n if (!bodyNode) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\n\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // fix ssr render\n\nvar defaultContainer = canUseDom() ? window : null;\n/** Sticky header hooks */\n\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n\n var container = getContainer() || defaultContainer;\n return React.useMemo(function () {\n var isSticky = !!sticky;\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport ColGroup from '../ColGroup';\nimport TableContext from '../context/TableContext';\n\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\n\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var className = _ref.className,\n noData = _ref.noData,\n columns = _ref.columns,\n flattenColumns = _ref.flattenColumns,\n colWidths = _ref.colWidths,\n columCount = _ref.columCount,\n stickyOffsets = _ref.stickyOffsets,\n direction = _ref.direction,\n fixHeader = _ref.fixHeader,\n stickyTopOffset = _ref.stickyTopOffset,\n stickyBottomOffset = _ref.stickyBottomOffset,\n stickyClassName = _ref.stickyClassName,\n onScroll = _ref.onScroll,\n maxContentScroll = _ref.maxContentScroll,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _React$useContext = React.useContext(TableContext),\n prefixCls = _React$useContext.prefixCls,\n scrollbarSize = _React$useContext.scrollbarSize,\n isSticky = _React$useContext.isSticky;\n\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize; // Pass wheel to scroll event\n\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n\n function onWheel(e) {\n var currentTarget = e.currentTarget,\n deltaX = e.deltaX;\n\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.addEventListener('wheel', onWheel);\n return function () {\n var _scrollRef$current2;\n\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []); // Check if all flattenColumns has width\n\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width >= 0;\n });\n }, [flattenColumns]); // Add scrollbar column\n\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]); // Calculate the sticky offsets\n\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(\"table\", {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, props), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nFixedHolder.displayName = 'FixedHolder';\nexport default FixedHolder;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\nimport * as React from 'react';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport classNames from 'classnames';\nimport shallowEqual from 'shallowequal';\nimport warning from \"rc-util/es/warning\";\nimport ResizeObserver from 'rc-resize-observer';\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport ColumnGroup from './sugar/ColumnGroup';\nimport Column from './sugar/Column';\nimport Header from './Header/Header';\nimport TableContext from './context/TableContext';\nimport BodyContext from './context/BodyContext';\nimport Body from './Body';\nimport useColumns from './hooks/useColumns';\nimport { useLayoutState, useTimeoutLock } from './hooks/useFrame';\nimport { getPathValue, validateValue, getColumnsKey } from './utils/valueUtil';\nimport ResizeContext from './context/ResizeContext';\nimport useStickyOffsets from './hooks/useStickyOffsets';\nimport ColGroup from './ColGroup';\nimport { getExpandableProps } from './utils/legacyUtil';\nimport Panel from './Panel';\nimport Footer, { FooterComponents } from './Footer';\nimport { findAllChildrenKeys, renderExpandIcon } from './utils/expandUtil';\nimport { getCellFixedInfo } from './utils/fixUtil';\nimport StickyScrollBar from './stickyScrollBar';\nimport useSticky from './hooks/useSticky';\nimport FixedHolder from './FixedHolder';\nimport Summary from './Footer/Summary';\nimport StickyContext from './context/StickyContext';\nimport ExpandedRowContext from './context/ExpandedRowContext';\nimport { EXPAND_COLUMN } from './constant'; // Used for conditions cache\n\nvar EMPTY_DATA = []; // Used for customize scroll\n\nvar EMPTY_SCROLL_TARGET = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';\nvar MemoTableContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (prev, next) {\n if (!shallowEqual(prev.props, next.props)) {\n return false;\n } // No additional render when pinged status change.\n // This is not a bug.\n\n\n return prev.pingLeft !== next.pingLeft || prev.pingRight !== next.pingRight;\n});\n\nfunction Table(props) {\n var _classNames;\n\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n sticky = props.sticky;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length; // ===================== Warning ======================\n\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n } // ==================== Customize =====================\n\n\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getPathValue(components || {}, path) || defaultComponent;\n }, [components]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n\n return function (record) {\n var key = record && record[rowKey];\n\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n\n return key;\n };\n }, [rowKey]); // ====================== Expand ======================\n\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n columnTitle = expandableConfig.columnTitle,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n expandRowByClick = expandableConfig.expandRowByClick,\n rowExpandable = expandableConfig.rowExpandable,\n expandIconColumnIndex = expandableConfig.expandIconColumnIndex,\n expandedRowClassName = expandableConfig.expandedRowClassName,\n childrenColumnName = expandableConfig.childrenColumnName,\n indentSize = expandableConfig.indentSize;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n\n\n if (props.expandable && internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n\n\n return false;\n }, [!!expandedRowRender, mergedData]);\n\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n\n setInnerExpandedKeys(newExpandedKeys);\n\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]); // Warning if use `expandedRowRender` and nest children in the same time\n\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n } // ====================== Column ======================\n\n\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n componentWidth = _React$useState4[0],\n setComponentWidth = _React$useState4[1];\n\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandedRowRender,\n columnTitle: columnTitle,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandIconColumnIndex,\n direction: direction\n }), internalHooks === INTERNAL_HOOKS ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 2),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1];\n\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]); // ====================== Scroll ======================\n\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollBodyContainerRef = React.useRef();\n var scrollSummaryRef = React.useRef();\n\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedLeft = _React$useState6[0],\n setPingedLeft = _React$useState6[1];\n\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n pingedRight = _React$useState8[0],\n setPingedRight = _React$useState8[1];\n\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1]; // Convert map to number width\n\n\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns.length, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(scroll.x) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref2) {\n var fixed = _ref2.fixed;\n return fixed;\n }); // Sticky\n\n var stickyRef = React.useRef();\n\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container; // Footer (Fix footer must fixed header)\n\n\n var summaryNode = summary === null || summary === void 0 ? void 0 : summary(mergedData);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed; // Scroll\n\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n\n if (fixHeader) {\n scrollYStyle = {\n overflowY: 'scroll',\n maxHeight: scroll.y\n };\n }\n\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n }; // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n\n scrollTableStyle = {\n width: (scroll === null || scroll === void 0 ? void 0 : scroll.x) === true ? 'auto' : scroll === null || scroll === void 0 ? void 0 : scroll.x,\n minWidth: '100%'\n };\n }\n\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n\n return widths;\n });\n }\n }, []);\n\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n // eslint-disable-next-line no-param-reassign\n target.scrollLeft = scrollLeft;\n }\n }\n\n var onScroll = function onScroll(_ref3) {\n var currentTarget = _ref3.currentTarget,\n scrollLeft = _ref3.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n\n if (currentTarget) {\n var scrollWidth = currentTarget.scrollWidth,\n clientWidth = currentTarget.clientWidth; // There is no space to scroll\n\n if (scrollWidth === clientWidth) {\n setPingedLeft(false);\n setPingedRight(false);\n return;\n }\n\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n };\n\n var triggerOnScroll = function triggerOnScroll() {\n if (horizonScroll && scrollBodyRef.current) {\n onScroll({\n currentTarget: scrollBodyRef.current\n });\n } else {\n setPingedLeft(false);\n setPingedRight(false);\n }\n };\n\n var onFullTableResize = function onFullTableResize(_ref4) {\n var width = _ref4.width;\n\n if (width !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(fullTableRef.current ? fullTableRef.current.offsetWidth : width);\n }\n }; // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n\n\n var mounted = React.useRef(false);\n React.useEffect(function () {\n // onFullTableResize will be trigger once when ResizeObserver is mounted\n // This will reduce one duplicated triggerOnScroll time\n if (mounted.current) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]);\n React.useEffect(function () {\n mounted.current = true;\n }, []); // ===================== Effects ======================\n\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n scrollbarSize = _React$useState10[0],\n setScrollbarSize = _React$useState10[1];\n\n var _React$useState11 = React.useState(true),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n supportSticky = _React$useState12[0],\n setSupportSticky = _React$useState12[1]; // Only IE not support, we mark as support first\n\n\n React.useEffect(function () {\n if (scrollBodyRef.current instanceof Element) {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n } else {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n }\n\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []); // ================== INTERNAL HOOKS ==================\n\n React.useEffect(function () {\n if (internalHooks === INTERNAL_HOOKS && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n }); // ====================== Render ======================\n\n var TableComponent = getComponent(['table'], 'table'); // Table layout\n\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n } // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n\n\n if (fixColumn) {\n return (scroll === null || scroll === void 0 ? void 0 : scroll.x) === 'max-content' ? 'auto' : 'fixed';\n }\n\n if (fixHeader || isSticky || flattenColumns.some(function (_ref5) {\n var ellipsis = _ref5.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode; // Header props\n\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n }; // Empty\n\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n\n return emptyText;\n }, [hasData, emptyText]); // Body\n\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky,\n expandedKeys: mergedExpandedKeys,\n rowExpandable: rowExpandable,\n getRowKey: getRowKey,\n onRow: onRow,\n emptyNode: emptyNode,\n childrenColumnName: mergedChildrenColumnName\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref6) {\n var width = _ref6.width;\n return width;\n }),\n columns: flattenColumns\n });\n var customizeScrollBody = getComponent(['body']);\n\n if (process.env.NODE_ENV !== 'production' && typeof customizeScrollBody === 'function' && hasData && !fixHeader) {\n warning(false, '`components.body` with render props is only work on `scroll.y`.');\n }\n\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref7, index) {\n var width = _ref7.width;\n var colWidth = index === columns.length - 1 ? width - scrollbarSize : width;\n\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n\n warning(false, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, {\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n } // Fixed holder share the props\n\n\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && scroll.x === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onScroll\n });\n\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }), isSticky && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onScroll,\n container: container\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, {\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n }\n\n var ariaProps = pickAttrs(props, {\n aria: true,\n data: true\n });\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ping-right\"), pingedRight), _defineProperty(_classNames, \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), _defineProperty(_classNames, \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), _defineProperty(_classNames, \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right'), _classNames)),\n style: style,\n id: id,\n ref: fullTableRef\n }, ariaProps), /*#__PURE__*/React.createElement(MemoTableContent, {\n pingLeft: pingedLeft,\n pingRight: pingedRight,\n props: _objectSpread(_objectSpread({}, props), {}, {\n stickyOffsets: stickyOffsets,\n mergedExpandedKeys: mergedExpandedKeys\n })\n }, title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollBodyContainerRef,\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData))));\n\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n\n var TableContextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n }),\n isSticky: isSticky\n };\n }, [prefixCls, getComponent, scrollbarSize, direction, flattenColumns, stickyOffsets, isSticky]);\n var BodyContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, columnContext), {}, {\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandedRowClassName,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandRowByClick,\n expandedRowRender: expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandIconColumnIndex,\n indentSize: indentSize,\n allColumnsFixedLeft: columnContext.flattenColumns.every(function (col) {\n return col.fixed === 'left';\n })\n });\n }, [columnContext, mergedTableLayout, rowClassName, expandedRowClassName, mergedExpandIcon, expandableType, expandRowByClick, expandedRowRender, onTriggerExpand, expandIconColumnIndex, indentSize]);\n var ExpandedRowContextValue = React.useMemo(function () {\n return {\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll\n };\n }, [componentWidth, fixHeader, fixColumn, horizonScroll]);\n var ResizeContextValue = React.useMemo(function () {\n return {\n onColumnResize: onColumnResize\n };\n }, [onColumnResize]);\n return /*#__PURE__*/React.createElement(StickyContext.Provider, {\n value: supportSticky\n }, /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, /*#__PURE__*/React.createElement(BodyContext.Provider, {\n value: BodyContextValue\n }, /*#__PURE__*/React.createElement(ExpandedRowContext.Provider, {\n value: ExpandedRowContextValue\n }, /*#__PURE__*/React.createElement(ResizeContext.Provider, {\n value: ResizeContextValue\n }, fullTable)))));\n}\n\nTable.EXPAND_COLUMN = EXPAND_COLUMN;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = FooterComponents;\nTable.defaultProps = {\n rowKey: 'key',\n prefixCls: 'rc-table',\n emptyText: function emptyText() {\n return 'No Data';\n }\n};\nexport default Table;","import Table from './Table';\nimport { FooterComponents as Summary } from './Footer';\nimport Column from './sugar/Column';\nimport ColumnGroup from './sugar/ColumnGroup';\nimport { INTERNAL_COL_DEFINE } from './utils/legacyUtil';\nexport { Summary, Column, ColumnGroup, INTERNAL_COL_DEFINE };\nexport default Table;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (func) {\n return func(screens);\n });\n return subscribers.size >= 1;\n },\n subscribe: function subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers[\"delete\"](token);\n if (!subscribers.size) this.unregister();\n },\n unregister: function unregister() {\n var _this = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register: function register() {\n var _this2 = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\nfunction useBreakpoint() {\n var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var screensRef = useRef({});\n var forceUpdate = useForceUpdate();\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import defaultLocale from './default';\nexport default defaultLocale;","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleLeftOutlinedSvg\n }));\n};\nDoubleLeftOutlined.displayName = 'DoubleLeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: DoubleRightOutlinedSvg\n }));\n};\nDoubleRightOutlined.displayName = 'DoubleRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(DoubleRightOutlined);","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\nLeftOutlined.displayName = 'LeftOutlined';\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\nRightOutlined.displayName = 'RightOutlined';\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport classNames from 'classnames';\nvar Pager = function Pager(props) {\n var _classNames;\n var prefixCls = \"\".concat(props.rootPrefixCls, \"-item\");\n var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(props.page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), props.active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !props.page), _defineProperty(_classNames, props.className, !!props.className), _classNames));\n var handleClick = function handleClick() {\n props.onClick(props.page);\n };\n var handleKeyPress = function handleKeyPress(e) {\n props.onKeyPress(e, props.onClick, props.page);\n };\n return /*#__PURE__*/React.createElement(\"li\", {\n title: props.showTitle ? props.page : null,\n className: cls,\n onClick: handleClick,\n onKeyPress: handleKeyPress,\n tabIndex: \"0\"\n }, props.itemRender(props.page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n rel: \"nofollow\"\n }, props.page)));\n};\nexport default Pager;","export default {\n ZERO: 48,\n NINE: 57,\n NUMPAD_ZERO: 96,\n NUMPAD_NINE: 105,\n BACKSPACE: 8,\n DELETE: 46,\n ENTER: 13,\n ARROW_UP: 38,\n ARROW_DOWN: 40\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React from 'react';\nimport KEYCODE from './KeyCode';\nvar Options = /*#__PURE__*/function (_React$Component) {\n _inherits(Options, _React$Component);\n var _super = _createSuper(Options);\n function Options() {\n var _this;\n _classCallCheck(this, Options);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n goInputText: ''\n };\n _this.buildOptionText = function (value) {\n return \"\".concat(value, \" \").concat(_this.props.locale.items_per_page);\n };\n _this.changeSize = function (value) {\n _this.props.changeSize(Number(value));\n };\n _this.handleChange = function (e) {\n _this.setState({\n goInputText: e.target.value\n });\n };\n _this.handleBlur = function (e) {\n var _this$props = _this.props,\n goButton = _this$props.goButton,\n quickGo = _this$props.quickGo,\n rootPrefixCls = _this$props.rootPrefixCls;\n var goInputText = _this.state.goInputText;\n if (goButton || goInputText === '') {\n return;\n }\n _this.setState({\n goInputText: ''\n });\n if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n return;\n }\n quickGo(_this.getValidValue());\n };\n _this.go = function (e) {\n var goInputText = _this.state.goInputText;\n if (goInputText === '') {\n return;\n }\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.setState({\n goInputText: ''\n });\n _this.props.quickGo(_this.getValidValue());\n }\n };\n return _this;\n }\n _createClass(Options, [{\n key: \"getValidValue\",\n value: function getValidValue() {\n var goInputText = this.state.goInputText;\n // eslint-disable-next-line no-restricted-globals\n return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText);\n }\n }, {\n key: \"getPageSizeOptions\",\n value: function getPageSizeOptions() {\n var _this$props2 = this.props,\n pageSize = _this$props2.pageSize,\n pageSizeOptions = _this$props2.pageSizeOptions;\n if (pageSizeOptions.some(function (option) {\n return option.toString() === pageSize.toString();\n })) {\n return pageSizeOptions;\n }\n return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) {\n // eslint-disable-next-line no-restricted-globals\n var numberA = isNaN(Number(a)) ? 0 : Number(a);\n // eslint-disable-next-line no-restricted-globals\n var numberB = isNaN(Number(b)) ? 0 : Number(b);\n return numberA - numberB;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n locale = _this$props3.locale,\n rootPrefixCls = _this$props3.rootPrefixCls,\n changeSize = _this$props3.changeSize,\n quickGo = _this$props3.quickGo,\n goButton = _this$props3.goButton,\n selectComponentClass = _this$props3.selectComponentClass,\n buildOptionText = _this$props3.buildOptionText,\n selectPrefixCls = _this$props3.selectPrefixCls,\n disabled = _this$props3.disabled;\n var goInputText = this.state.goInputText;\n var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n var Select = selectComponentClass;\n var changeSelect = null;\n var goInput = null;\n var gotoButton = null;\n if (!changeSize && !quickGo) {\n return null;\n }\n var pageSizeOptions = this.getPageSizeOptions();\n if (changeSize && Select) {\n var options = pageSizeOptions.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(Select.Option, {\n key: i,\n value: opt.toString()\n }, (buildOptionText || _this2.buildOptionText)(opt));\n });\n changeSelect = /*#__PURE__*/React.createElement(Select, {\n disabled: disabled,\n prefixCls: selectPrefixCls,\n showSearch: false,\n className: \"\".concat(prefixCls, \"-size-changer\"),\n optionLabelProp: \"children\",\n dropdownMatchSelectWidth: false,\n value: (pageSize || pageSizeOptions[0]).toString(),\n onChange: this.changeSize,\n getPopupContainer: function getPopupContainer(triggerNode) {\n return triggerNode.parentNode;\n },\n \"aria-label\": locale.page_size,\n defaultOpen: false\n }, options);\n }\n if (quickGo) {\n if (goButton) {\n gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.go,\n onKeyUp: this.go,\n disabled: disabled,\n className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.go,\n onKeyUp: this.go\n }, goButton);\n }\n goInput = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-quick-jumper\")\n }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n disabled: disabled,\n type: \"text\",\n value: goInputText,\n onChange: this.handleChange,\n onKeyUp: this.go,\n onBlur: this.handleBlur,\n \"aria-label\": locale.page\n }), locale.page, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls)\n }, changeSelect, goInput);\n }\n }]);\n return Options;\n}(React.Component);\nOptions.defaultProps = {\n pageSizeOptions: ['10', '20', '50', '100']\n};\nexport default Options;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n/* eslint react/prop-types: 0 */\nimport React, { cloneElement, isValidElement } from 'react';\nimport classNames from 'classnames';\nimport Pager from './Pager';\nimport Options from './Options';\nimport KEYCODE from './KeyCode';\nimport LOCALE from './locale/zh_CN';\nfunction noop() {}\nfunction isInteger(v) {\n var value = Number(v);\n return (\n // eslint-disable-next-line no-restricted-globals\n typeof value === 'number' && !isNaN(value) && isFinite(value) && Math.floor(value) === value\n );\n}\nfunction defaultItemRender(page, type, element) {\n return element;\n}\nfunction calculatePage(p, state, props) {\n var pageSize = typeof p === 'undefined' ? state.pageSize : p;\n return Math.floor((props.total - 1) / pageSize) + 1;\n}\nvar Pagination = /*#__PURE__*/function (_React$Component) {\n _inherits(Pagination, _React$Component);\n var _super = _createSuper(Pagination);\n function Pagination(props) {\n var _this;\n _classCallCheck(this, Pagination);\n _this = _super.call(this, props);\n _this.getJumpPrevPage = function () {\n return Math.max(1, _this.state.current - (_this.props.showLessItems ? 3 : 5));\n };\n _this.getJumpNextPage = function () {\n return Math.min(calculatePage(undefined, _this.state, _this.props), _this.state.current + (_this.props.showLessItems ? 3 : 5));\n };\n _this.getItemIcon = function (icon, label) {\n var prefixCls = _this.props.prefixCls;\n var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": label,\n className: \"\".concat(prefixCls, \"-item-link\")\n });\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, _this.props));\n }\n return iconNode;\n };\n _this.savePaginationNode = function (node) {\n _this.paginationNode = node;\n };\n _this.isValid = function (page) {\n var total = _this.props.total;\n return isInteger(page) && page !== _this.state.current && isInteger(total) && total > 0;\n };\n _this.shouldDisplayQuickJumper = function () {\n var _this$props = _this.props,\n showQuickJumper = _this$props.showQuickJumper,\n total = _this$props.total;\n var pageSize = _this.state.pageSize;\n if (total <= pageSize) {\n return false;\n }\n return showQuickJumper;\n };\n _this.handleKeyDown = function (e) {\n if (e.keyCode === KEYCODE.ARROW_UP || e.keyCode === KEYCODE.ARROW_DOWN) {\n e.preventDefault();\n }\n };\n _this.handleKeyUp = function (e) {\n var value = _this.getValidValue(e);\n var currentInputValue = _this.state.currentInputValue;\n if (value !== currentInputValue) {\n _this.setState({\n currentInputValue: value\n });\n }\n if (e.keyCode === KEYCODE.ENTER) {\n _this.handleChange(value);\n } else if (e.keyCode === KEYCODE.ARROW_UP) {\n _this.handleChange(value - 1);\n } else if (e.keyCode === KEYCODE.ARROW_DOWN) {\n _this.handleChange(value + 1);\n }\n };\n _this.handleBlur = function (e) {\n var value = _this.getValidValue(e);\n _this.handleChange(value);\n };\n _this.changePageSize = function (size) {\n var current = _this.state.current;\n var newCurrent = calculatePage(size, _this.state, _this.props);\n current = current > newCurrent ? newCurrent : current;\n // fix the issue:\n // Once 'total' is 0, 'current' in 'onShowSizeChange' is 0, which is not correct.\n if (newCurrent === 0) {\n // eslint-disable-next-line prefer-destructuring\n current = _this.state.current;\n }\n if (typeof size === 'number') {\n if (!('pageSize' in _this.props)) {\n _this.setState({\n pageSize: size\n });\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: current,\n currentInputValue: current\n });\n }\n }\n _this.props.onShowSizeChange(current, size);\n if ('onChange' in _this.props && _this.props.onChange) {\n _this.props.onChange(current, size);\n }\n };\n _this.handleChange = function (page) {\n var _this$props2 = _this.props,\n disabled = _this$props2.disabled,\n onChange = _this$props2.onChange;\n var _this$state = _this.state,\n pageSize = _this$state.pageSize,\n current = _this$state.current,\n currentInputValue = _this$state.currentInputValue;\n if (_this.isValid(page) && !disabled) {\n var currentPage = calculatePage(undefined, _this.state, _this.props);\n var newPage = page;\n if (page > currentPage) {\n newPage = currentPage;\n } else if (page < 1) {\n newPage = 1;\n }\n if (!('current' in _this.props)) {\n _this.setState({\n current: newPage\n });\n }\n if (newPage !== currentInputValue) {\n _this.setState({\n currentInputValue: newPage\n });\n }\n onChange(newPage, pageSize);\n return newPage;\n }\n return current;\n };\n _this.prev = function () {\n if (_this.hasPrev()) {\n _this.handleChange(_this.state.current - 1);\n }\n };\n _this.next = function () {\n if (_this.hasNext()) {\n _this.handleChange(_this.state.current + 1);\n }\n };\n _this.jumpPrev = function () {\n _this.handleChange(_this.getJumpPrevPage());\n };\n _this.jumpNext = function () {\n _this.handleChange(_this.getJumpNextPage());\n };\n _this.hasPrev = function () {\n return _this.state.current > 1;\n };\n _this.hasNext = function () {\n return _this.state.current < calculatePage(undefined, _this.state, _this.props);\n };\n _this.runIfEnter = function (event, callback) {\n if (event.key === 'Enter' || event.charCode === 13) {\n for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n restParams[_key - 2] = arguments[_key];\n }\n callback.apply(void 0, restParams);\n }\n };\n _this.runIfEnterPrev = function (e) {\n _this.runIfEnter(e, _this.prev);\n };\n _this.runIfEnterNext = function (e) {\n _this.runIfEnter(e, _this.next);\n };\n _this.runIfEnterJumpPrev = function (e) {\n _this.runIfEnter(e, _this.jumpPrev);\n };\n _this.runIfEnterJumpNext = function (e) {\n _this.runIfEnter(e, _this.jumpNext);\n };\n _this.handleGoTO = function (e) {\n if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n _this.handleChange(_this.state.currentInputValue);\n }\n };\n var hasOnChange = props.onChange !== noop;\n var hasCurrent = ('current' in props);\n if (hasCurrent && !hasOnChange) {\n // eslint-disable-next-line no-console\n console.warn('Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n }\n var _current = props.defaultCurrent;\n if ('current' in props) {\n // eslint-disable-next-line prefer-destructuring\n _current = props.current;\n }\n var _pageSize = props.defaultPageSize;\n if ('pageSize' in props) {\n // eslint-disable-next-line prefer-destructuring\n _pageSize = props.pageSize;\n }\n _current = Math.min(_current, calculatePage(_pageSize, undefined, props));\n _this.state = {\n current: _current,\n currentInputValue: _current,\n pageSize: _pageSize\n };\n return _this;\n }\n _createClass(Pagination, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // When current page change, fix focused style of prev item\n // A hacky solution of https://github.com/ant-design/ant-design/issues/8948\n var prefixCls = this.props.prefixCls;\n if (prevState.current !== this.state.current && this.paginationNode) {\n var lastCurrentNode = this.paginationNode.querySelector(\".\".concat(prefixCls, \"-item-\").concat(prevState.current));\n if (lastCurrentNode && document.activeElement === lastCurrentNode) {\n lastCurrentNode.blur();\n }\n }\n }\n }, {\n key: \"getValidValue\",\n value: function getValidValue(e) {\n var inputValue = e.target.value;\n var allPages = calculatePage(undefined, this.state, this.props);\n var currentInputValue = this.state.currentInputValue;\n var value;\n if (inputValue === '') {\n value = inputValue;\n // eslint-disable-next-line no-restricted-globals\n } else if (isNaN(Number(inputValue))) {\n value = currentInputValue;\n } else if (inputValue >= allPages) {\n value = allPages;\n } else {\n value = Number(inputValue);\n }\n return value;\n }\n }, {\n key: \"getShowSizeChanger\",\n value: function getShowSizeChanger() {\n var _this$props3 = this.props,\n showSizeChanger = _this$props3.showSizeChanger,\n total = _this$props3.total,\n totalBoundaryShowSizeChanger = _this$props3.totalBoundaryShowSizeChanger;\n if (typeof showSizeChanger !== 'undefined') {\n return showSizeChanger;\n }\n return total > totalBoundaryShowSizeChanger;\n }\n }, {\n key: \"renderPrev\",\n value: function renderPrev(prevPage) {\n var _this$props4 = this.props,\n prevIcon = _this$props4.prevIcon,\n itemRender = _this$props4.itemRender;\n var prevButton = itemRender(prevPage, 'prev', this.getItemIcon(prevIcon, 'prev page'));\n var disabled = !this.hasPrev();\n return /*#__PURE__*/isValidElement(prevButton) ? /*#__PURE__*/cloneElement(prevButton, {\n disabled: disabled\n }) : prevButton;\n }\n }, {\n key: \"renderNext\",\n value: function renderNext(nextPage) {\n var _this$props5 = this.props,\n nextIcon = _this$props5.nextIcon,\n itemRender = _this$props5.itemRender;\n var nextButton = itemRender(nextPage, 'next', this.getItemIcon(nextIcon, 'next page'));\n var disabled = !this.hasNext();\n return /*#__PURE__*/isValidElement(nextButton) ? /*#__PURE__*/cloneElement(nextButton, {\n disabled: disabled\n }) : nextButton;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n className = _this$props6.className,\n style = _this$props6.style,\n disabled = _this$props6.disabled,\n hideOnSinglePage = _this$props6.hideOnSinglePage,\n total = _this$props6.total,\n locale = _this$props6.locale,\n showQuickJumper = _this$props6.showQuickJumper,\n showLessItems = _this$props6.showLessItems,\n showTitle = _this$props6.showTitle,\n showTotal = _this$props6.showTotal,\n simple = _this$props6.simple,\n itemRender = _this$props6.itemRender,\n showPrevNextJumpers = _this$props6.showPrevNextJumpers,\n jumpPrevIcon = _this$props6.jumpPrevIcon,\n jumpNextIcon = _this$props6.jumpNextIcon,\n selectComponentClass = _this$props6.selectComponentClass,\n selectPrefixCls = _this$props6.selectPrefixCls,\n pageSizeOptions = _this$props6.pageSizeOptions;\n var _this$state2 = this.state,\n current = _this$state2.current,\n pageSize = _this$state2.pageSize,\n currentInputValue = _this$state2.currentInputValue;\n\n // When hideOnSinglePage is true and there is only 1 page, hide the pager\n if (hideOnSinglePage === true && total <= pageSize) {\n return null;\n }\n var allPages = calculatePage(undefined, this.state, this.props);\n var pagerList = [];\n var jumpPrev = null;\n var jumpNext = null;\n var firstPager = null;\n var lastPager = null;\n var gotoButton = null;\n var goButton = showQuickJumper && showQuickJumper.goButton;\n var pageBufferSize = showLessItems ? 1 : 2;\n var prevPage = current - 1 > 0 ? current - 1 : 0;\n var nextPage = current + 1 < allPages ? current + 1 : allPages;\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (prev, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n // eslint-disable-next-line no-param-reassign\n prev[key] = _this2.props[key];\n }\n return prev;\n }, {});\n var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-total-text\")\n }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n if (simple) {\n if (goButton) {\n if (typeof goButton === 'boolean') {\n gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, locale.jump_to_confirm);\n } else {\n gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n onClick: this.handleGoTO,\n onKeyUp: this.handleGoTO\n }, goButton);\n }\n gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, gotoButton);\n }\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-simple\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), className),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasPrev())),\n \"aria-disabled\": !this.hasPrev()\n }, this.renderPrev(prevPage)), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n className: \"\".concat(prefixCls, \"-simple-pager\")\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n value: currentInputValue,\n disabled: disabled,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onChange: this.handleKeyUp,\n onBlur: this.handleBlur,\n size: \"3\"\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-slash\")\n }, \"/\"), allPages), /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: this.hasPrev() ? 0 : null,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), !this.hasNext())),\n \"aria-disabled\": !this.hasNext()\n }, this.renderNext(nextPage)), gotoButton);\n }\n if (allPages <= 3 + pageBufferSize * 2) {\n var pagerProps = {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n showTitle: showTitle,\n itemRender: itemRender\n };\n if (!allPages) {\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: \"noPager\",\n page: 1,\n className: \"\".concat(prefixCls, \"-item-disabled\")\n })));\n }\n for (var i = 1; i <= allPages; i += 1) {\n var active = current === i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n key: i,\n page: i,\n active: active\n })));\n }\n } else {\n var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n if (showPrevNextJumpers) {\n jumpPrev = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? prevItemTitle : null,\n key: \"prev\",\n onClick: this.jumpPrev,\n tabIndex: \"0\",\n onKeyPress: this.runIfEnterJumpPrev,\n className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n }, itemRender(this.getJumpPrevPage(), 'jump-prev', this.getItemIcon(jumpPrevIcon, 'prev page')));\n jumpNext = /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? nextItemTitle : null,\n key: \"next\",\n tabIndex: \"0\",\n onClick: this.jumpNext,\n onKeyPress: this.runIfEnterJumpNext,\n className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n }, itemRender(this.getJumpNextPage(), 'jump-next', this.getItemIcon(jumpNextIcon, 'next page')));\n }\n lastPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n last: true,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: allPages,\n page: allPages,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n firstPager = /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: 1,\n page: 1,\n active: false,\n showTitle: showTitle,\n itemRender: itemRender\n });\n var left = Math.max(1, current - pageBufferSize);\n var right = Math.min(current + pageBufferSize, allPages);\n if (current - 1 <= pageBufferSize) {\n right = 1 + pageBufferSize * 2;\n }\n if (allPages - current <= pageBufferSize) {\n left = allPages - pageBufferSize * 2;\n }\n for (var _i = left; _i <= right; _i += 1) {\n var _active = current === _i;\n pagerList.push( /*#__PURE__*/React.createElement(Pager, {\n locale: locale,\n rootPrefixCls: prefixCls,\n onClick: this.handleChange,\n onKeyPress: this.runIfEnter,\n key: _i,\n page: _i,\n active: _active,\n showTitle: showTitle,\n itemRender: itemRender\n }));\n }\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n pagerList[0] = /*#__PURE__*/cloneElement(pagerList[0], {\n className: \"\".concat(prefixCls, \"-item-after-jump-prev\")\n });\n pagerList.unshift(jumpPrev);\n }\n if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n pagerList[pagerList.length - 1] = /*#__PURE__*/cloneElement(pagerList[pagerList.length - 1], {\n className: \"\".concat(prefixCls, \"-item-before-jump-next\")\n });\n pagerList.push(jumpNext);\n }\n if (left !== 1) {\n pagerList.unshift(firstPager);\n }\n if (right !== allPages) {\n pagerList.push(lastPager);\n }\n }\n var prevDisabled = !this.hasPrev() || !allPages;\n var nextDisabled = !this.hasNext() || !allPages;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n style: style,\n ref: this.savePaginationNode\n }, dataOrAriaAttributeProps), totalText, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.prev_page : null,\n onClick: this.prev,\n tabIndex: prevDisabled ? null : 0,\n onKeyPress: this.runIfEnterPrev,\n className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n \"aria-disabled\": prevDisabled\n }, this.renderPrev(prevPage)), pagerList, /*#__PURE__*/React.createElement(\"li\", {\n title: showTitle ? locale.next_page : null,\n onClick: this.next,\n tabIndex: nextDisabled ? null : 0,\n onKeyPress: this.runIfEnterNext,\n className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n \"aria-disabled\": nextDisabled\n }, this.renderNext(nextPage)), /*#__PURE__*/React.createElement(Options, {\n disabled: disabled,\n locale: locale,\n rootPrefixCls: prefixCls,\n selectComponentClass: selectComponentClass,\n selectPrefixCls: selectPrefixCls,\n changeSize: this.getShowSizeChanger() ? this.changePageSize : null,\n current: current,\n pageSize: pageSize,\n pageSizeOptions: pageSizeOptions,\n quickGo: this.shouldDisplayQuickJumper() ? this.handleChange : null,\n goButton: goButton\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var newState = {};\n if ('current' in props) {\n newState.current = props.current;\n if (props.current !== prevState.current) {\n newState.currentInputValue = newState.current;\n }\n }\n if ('pageSize' in props && props.pageSize !== prevState.pageSize) {\n var current = prevState.current;\n var newCurrent = calculatePage(props.pageSize, prevState, props);\n current = current > newCurrent ? newCurrent : current;\n if (!('current' in props)) {\n newState.current = current;\n newState.currentInputValue = current;\n }\n newState.pageSize = props.pageSize;\n }\n return newState;\n }\n }]);\n return Pagination;\n}(React.Component);\nPagination.defaultProps = {\n defaultCurrent: 1,\n total: 0,\n defaultPageSize: 10,\n onChange: noop,\n className: '',\n selectPrefixCls: 'rc-select',\n prefixCls: 'rc-pagination',\n selectComponentClass: null,\n hideOnSinglePage: false,\n showPrevNextJumpers: true,\n showQuickJumper: false,\n showLessItems: false,\n showTitle: true,\n onShowSizeChange: noop,\n locale: LOCALE,\n style: {},\n itemRender: defaultItemRender,\n totalBoundaryShowSizeChanger: 50\n};\nexport default Pagination;","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页',\n page_size: '页码'\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Select from '../select';\nvar MiniSelect = function MiniSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({}, props, {\n size: \"small\"\n }));\n};\nvar MiddleSelect = function MiddleSelect(props) {\n return /*#__PURE__*/React.createElement(Select, _extends({}, props, {\n size: \"middle\"\n }));\n};\nMiniSelect.Option = Select.Option;\nMiddleSelect.Option = Select.Option;\nexport { MiniSelect, MiddleSelect };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport { MiddleSelect, MiniSelect } from './Select';\nvar Pagination = function Pagination(_a) {\n var customizePrefixCls = _a.prefixCls,\n customizeSelectPrefixCls = _a.selectPrefixCls,\n className = _a.className,\n size = _a.size,\n customLocale = _a.locale,\n selectComponentClass = _a.selectComponentClass,\n responsive = _a.responsive,\n showSizeChanger = _a.showSizeChanger,\n restProps = __rest(_a, [\"prefixCls\", \"selectPrefixCls\", \"className\", \"size\", \"locale\", \"selectComponentClass\", \"responsive\", \"showSizeChanger\"]);\n var _useBreakpoint = useBreakpoint(responsive),\n xs = _useBreakpoint.xs;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n _React$useContext$pag = _React$useContext.pagination,\n pagination = _React$useContext$pag === void 0 ? {} : _React$useContext$pag;\n var prefixCls = getPrefixCls('pagination', customizePrefixCls);\n var mergedShowSizeChanger = showSizeChanger !== null && showSizeChanger !== void 0 ? showSizeChanger : pagination.showSizeChanger;\n var getIconsProps = function getIconsProps() {\n var ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-ellipsis\")\n }, \"\\u2022\\u2022\\u2022\");\n var prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(LeftOutlined, null));\n var nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-item-link\"),\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/React.createElement(RightOutlined, null));\n var jumpPrevIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n var jumpNextIcon = /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-item-link\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-container\")\n }, /*#__PURE__*/React.createElement(DoubleRightOutlined, {\n className: \"\".concat(prefixCls, \"-item-link-icon\")\n }), ellipsis));\n // change arrows direction in right-to-left direction\n if (direction === 'rtl') {\n var _ref = [nextIcon, prevIcon];\n prevIcon = _ref[0];\n nextIcon = _ref[1];\n var _ref2 = [jumpNextIcon, jumpPrevIcon];\n jumpPrevIcon = _ref2[0];\n jumpNextIcon = _ref2[1];\n }\n return {\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n jumpPrevIcon: jumpPrevIcon,\n jumpNextIcon: jumpNextIcon\n };\n };\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Pagination\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var locale = _extends(_extends({}, contextLocale), customLocale);\n var isSmall = size === 'small' || !!(xs && !size && responsive);\n var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n var extendedClassName = classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-mini\"), isSmall), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(RcPagination, _extends({}, getIconsProps(), restProps, {\n prefixCls: prefixCls,\n selectPrefixCls: selectPrefixCls,\n className: extendedClassName,\n selectComponentClass: selectComponentClass || (isSmall ? MiniSelect : MiddleSelect),\n locale: locale,\n showSizeChanger: mergedShowSizeChanger\n }));\n });\n};\nexport default Pagination;","import Pagination from './Pagination';\nexport default Pagination;","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nexport default function getScroll(target, top) {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n var method = top ? 'scrollTop' : 'scrollLeft';\n var result = 0;\n if (isWindow(target)) {\n result = target[top ? 'pageYOffset' : 'pageXOffset'];\n } else if (target instanceof Document) {\n result = target.documentElement[method];\n } else if (target instanceof HTMLElement) {\n result = target[method];\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n result = target[method];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b[method];\n }\n return result;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$getContainer = options.getContainer,\n getContainer = _options$getContainer === void 0 ? function () {\n return window;\n } : _options$getContainer,\n callback = options.callback,\n _options$duration = options.duration,\n duration = _options$duration === void 0 ? 450 : _options$duration;\n var container = getContainer();\n var scrollTop = getScroll(container, true);\n var startTime = Date.now();\n var frameFunc = function frameFunc() {\n var timestamp = Date.now();\n var time = timestamp - startTime;\n var nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\n}","// eslint-disable-next-line import/prefer-default-export\nexport function easeInOutCubic(t, b, c, d) {\n var cc = c - b;\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // eslint-disable-next-line no-return-assign\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\n// eslint-disable-next-line no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nfunction renderExpandIcon(locale) {\n return function expandIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n onExpand = _ref.onExpand,\n record = _ref.record,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var iconPrefix = \"\".concat(prefixCls, \"-row-expand-icon\");\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: function onClick(e) {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(iconPrefix, \"-spaced\"), !expandable), \"\".concat(iconPrefix, \"-expanded\"), expandable && expanded), \"\".concat(iconPrefix, \"-collapsed\"), expandable && !expanded)),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","export function getColumnKey(column, defaultKey) {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n}\nexport function getColumnPos(index, pos) {\n return pos ? \"\".concat(pos, \"-\").concat(index) : \"\".concat(index);\n}\nexport function renderColumnTitle(title, props) {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n}\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n * @returns\n */\nexport function safeColumnTitle(title, props) {\n var res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') return '';\n return res;\n}","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\nFilterFilled.displayName = 'FilterFilled';\nexport default /*#__PURE__*/React.forwardRef(FilterFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"checked\", \"disabled\", \"defaultChecked\", \"type\", \"onChange\"];\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nexport var Checkbox = /*#__PURE__*/forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-checkbox' : _props$prefixCls,\n className = props.className,\n style = props.style,\n checked = props.checked,\n disabled = props.disabled,\n _props$defaultChecked = props.defaultChecked,\n defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,\n _props$type = props.type,\n type = _props$type === void 0 ? 'checkbox' : _props$type,\n onChange = props.onChange,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputRef = useRef(null);\n var _useMergedState = useMergedState(defaultChecked, {\n value: checked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n rawValue = _useMergedState2[0],\n setRawValue = _useMergedState2[1];\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();\n },\n input: inputRef.current\n };\n });\n var classString = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), rawValue), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n var handleChange = function handleChange(e) {\n if (disabled) {\n return;\n }\n if (!('checked' in props)) {\n setRawValue(e.target.checked);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange({\n target: _objectSpread(_objectSpread({}, props), {}, {\n type: type,\n checked: e.target.checked\n }),\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n nativeEvent: e.nativeEvent\n });\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classString,\n style: style\n }, /*#__PURE__*/React.createElement(\"input\", _extends({}, inputProps, {\n className: \"\".concat(prefixCls, \"-input\"),\n ref: inputRef,\n onChange: handleChange,\n disabled: disabled,\n checked: !!rawValue,\n type: type\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }));\n});\nexport default Checkbox;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Checkbox from './Checkbox';\nexport var GroupContext = /*#__PURE__*/React.createContext(null);\nvar InternalCheckboxGroup = function InternalCheckboxGroup(_a, ref) {\n var defaultValue = _a.defaultValue,\n children = _a.children,\n _a$options = _a.options,\n options = _a$options === void 0 ? [] : _a$options,\n customizePrefixCls = _a.prefixCls,\n className = _a.className,\n style = _a.style,\n onChange = _a.onChange,\n restProps = __rest(_a, [\"defaultValue\", \"children\", \"options\", \"prefixCls\", \"className\", \"style\", \"onChange\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState = React.useState(restProps.value || defaultValue || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n registeredValues = _React$useState4[0],\n setRegisteredValues = _React$useState4[1];\n React.useEffect(function () {\n if ('value' in restProps) {\n setValue(restProps.value || []);\n }\n }, [restProps.value]);\n var getOptions = function getOptions() {\n return options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n return {\n label: option,\n value: option\n };\n }\n return option;\n });\n };\n var cancelValue = function cancelValue(val) {\n setRegisteredValues(function (prevValues) {\n return prevValues.filter(function (v) {\n return v !== val;\n });\n });\n };\n var registerValue = function registerValue(val) {\n setRegisteredValues(function (prevValues) {\n return [].concat(_toConsumableArray(prevValues), [val]);\n });\n };\n var toggleOption = function toggleOption(option) {\n var optionIndex = value.indexOf(option.value);\n var newValue = _toConsumableArray(value);\n if (optionIndex === -1) {\n newValue.push(option.value);\n } else {\n newValue.splice(optionIndex, 1);\n }\n if (!('value' in restProps)) {\n setValue(newValue);\n }\n var opts = getOptions();\n onChange === null || onChange === void 0 ? void 0 : onChange(newValue.filter(function (val) {\n return registeredValues.includes(val);\n }).sort(function (a, b) {\n var indexA = opts.findIndex(function (opt) {\n return opt.value === a;\n });\n var indexB = opts.findIndex(function (opt) {\n return opt.value === b;\n });\n return indexA - indexB;\n }));\n };\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var domProps = omit(restProps, ['value', 'disabled']);\n if (options && options.length > 0) {\n children = getOptions().map(function (option) {\n return /*#__PURE__*/React.createElement(Checkbox, {\n prefixCls: prefixCls,\n key: option.value.toString(),\n disabled: 'disabled' in option ? option.disabled : restProps.disabled,\n value: option.value,\n checked: value.includes(option.value),\n onChange: option.onChange,\n className: \"\".concat(groupPrefixCls, \"-item\"),\n style: option.style\n }, option.label);\n });\n }\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n var context = {\n toggleOption: toggleOption,\n value: value,\n disabled: restProps.disabled,\n name: restProps.name,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue: registerValue,\n cancelValue: cancelValue\n };\n var classString = classNames(groupPrefixCls, _defineProperty({}, \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString,\n style: style\n }, domProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(GroupContext.Provider, {\n value: context\n }, children));\n};\nvar CheckboxGroup = /*#__PURE__*/React.forwardRef(InternalCheckboxGroup);\nexport default /*#__PURE__*/React.memo(CheckboxGroup);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport { GroupContext } from './Group';\nimport DisabledContext from '../config-provider/DisabledContext';\nvar InternalCheckbox = function InternalCheckbox(_a, ref) {\n var _b;\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n children = _a.children,\n _a$indeterminate = _a.indeterminate,\n indeterminate = _a$indeterminate === void 0 ? false : _a$indeterminate,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n _a$skipGroup = _a.skipGroup,\n skipGroup = _a$skipGroup === void 0 ? false : _a$skipGroup,\n disabled = _a.disabled,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"children\", \"indeterminate\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"skipGroup\", \"disabled\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var checkboxGroup = React.useContext(GroupContext);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n var contextDisabled = useContext(DisabledContext);\n var mergedDisabled = (_b = (checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.disabled) || disabled) !== null && _b !== void 0 ? _b : contextDisabled;\n var prevValue = React.useRef(restProps.value);\n React.useEffect(function () {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in restProps || !!checkboxGroup || !('value' in restProps), 'Checkbox', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n }, []);\n React.useEffect(function () {\n if (skipGroup) {\n return;\n }\n if (restProps.value !== prevValue.current) {\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(prevValue.current);\n checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.registerValue(restProps.value);\n prevValue.current = restProps.value;\n }\n return function () {\n return checkboxGroup === null || checkboxGroup === void 0 ? void 0 : checkboxGroup.cancelValue(restProps.value);\n };\n }, [restProps.value]);\n var prefixCls = getPrefixCls('checkbox', customizePrefixCls);\n var checkboxProps = _extends({}, restProps);\n if (checkboxGroup && !skipGroup) {\n checkboxProps.onChange = function () {\n if (restProps.onChange) {\n restProps.onChange.apply(restProps, arguments);\n }\n if (checkboxGroup.toggleOption) {\n checkboxGroup.toggleOption({\n label: children,\n value: restProps.value\n });\n }\n };\n checkboxProps.name = checkboxGroup.name;\n checkboxProps.checked = checkboxGroup.value.includes(restProps.value);\n }\n var classString = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-wrapper\"), true), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-wrapper-checked\"), checkboxProps.checked), \"\".concat(prefixCls, \"-wrapper-disabled\"), mergedDisabled), \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), className);\n var checkboxClass = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-indeterminate\"), indeterminate));\n var ariaChecked = indeterminate ? 'mixed' : undefined;\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({\n \"aria-checked\": ariaChecked\n }, checkboxProps, {\n prefixCls: prefixCls,\n className: checkboxClass,\n disabled: mergedDisabled,\n ref: ref\n })), children !== undefined && /*#__PURE__*/React.createElement(\"span\", null, children))\n );\n};\nvar Checkbox = /*#__PURE__*/React.forwardRef(InternalCheckbox);\nif (process.env.NODE_ENV !== 'production') {\n Checkbox.displayName = 'Checkbox';\n}\nexport default Checkbox;","import InternalCheckbox from './Checkbox';\nimport Group from './Group';\nvar Checkbox = InternalCheckbox;\nCheckbox.Group = Group;\nCheckbox.__ANT_CHECKBOX = true;\nexport default Checkbox;","// This icon file is generated automatically.\nvar BarsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"bars\", \"theme\": \"outlined\" };\nexport default BarsOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport BarsOutlinedSvg from \"@ant-design/icons-svg/es/asn/BarsOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar BarsOutlined = function BarsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: BarsOutlinedSvg\n }));\n};\nBarsOutlined.displayName = 'BarsOutlined';\nexport default /*#__PURE__*/React.forwardRef(BarsOutlined);","var isNumeric = function isNumeric(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n};\nexport default isNumeric;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nexport var LayoutContext = /*#__PURE__*/React.createContext({\n siderHook: {\n addSider: function addSider() {\n return null;\n },\n removeSider: function removeSider() {\n return null;\n }\n }\n});\nfunction generator(_ref) {\n var suffixCls = _ref.suffixCls,\n tagName = _ref.tagName,\n displayName = _ref.displayName;\n return function (BasicComponent) {\n var Adapter = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(suffixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(BasicComponent, _extends({\n ref: ref,\n prefixCls: prefixCls,\n tagName: tagName\n }, props));\n });\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nvar Basic = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n tagName = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"tagName\"]);\n var classString = classNames(prefixCls, className);\n return /*#__PURE__*/React.createElement(tagName, _extends(_extends({\n className: classString\n }, others), {\n ref: ref\n }), children);\n});\nvar BasicLayout = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext2 = React.useContext(ConfigContext),\n direction = _React$useContext2.direction;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n siders = _React$useState2[0],\n setSiders = _React$useState2[1];\n var prefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n hasSider = props.hasSider,\n Tag = props.tagName,\n others = __rest(props, [\"prefixCls\", \"className\", \"children\", \"hasSider\", \"tagName\"]);\n var classString = classNames(prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-has-sider\"), typeof hasSider === 'boolean' ? hasSider : siders.length > 0), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var contextValue = React.useMemo(function () {\n return {\n siderHook: {\n addSider: function addSider(id) {\n setSiders(function (prev) {\n return [].concat(_toConsumableArray(prev), [id]);\n });\n },\n removeSider: function removeSider(id) {\n setSiders(function (prev) {\n return prev.filter(function (currentId) {\n return currentId !== id;\n });\n });\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classString\n }, others), children));\n});\nvar Layout = generator({\n suffixCls: 'layout',\n tagName: 'section',\n displayName: 'Layout'\n})(BasicLayout);\nvar Header = generator({\n suffixCls: 'layout-header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nvar Footer = generator({\n suffixCls: 'layout-footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nvar Content = generator({\n suffixCls: 'layout-content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Header, Footer, Content };\nexport default Layout;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport isNumeric from '../_util/isNumeric';\nimport { LayoutContext } from './layout';\nvar dimensionMaxMap = {\n xs: '479.98px',\n sm: '575.98px',\n md: '767.98px',\n lg: '991.98px',\n xl: '1199.98px',\n xxl: '1599.98px'\n};\nexport var SiderContext = /*#__PURE__*/React.createContext({});\nvar generateId = function () {\n var i = 0;\n return function () {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n i += 1;\n return \"\".concat(prefix).concat(i);\n };\n}();\nvar Sider = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n trigger = _a.trigger,\n children = _a.children,\n _a$defaultCollapsed = _a.defaultCollapsed,\n defaultCollapsed = _a$defaultCollapsed === void 0 ? false : _a$defaultCollapsed,\n _a$theme = _a.theme,\n theme = _a$theme === void 0 ? 'dark' : _a$theme,\n _a$style = _a.style,\n style = _a$style === void 0 ? {} : _a$style,\n _a$collapsible = _a.collapsible,\n collapsible = _a$collapsible === void 0 ? false : _a$collapsible,\n _a$reverseArrow = _a.reverseArrow,\n reverseArrow = _a$reverseArrow === void 0 ? false : _a$reverseArrow,\n _a$width = _a.width,\n width = _a$width === void 0 ? 200 : _a$width,\n _a$collapsedWidth = _a.collapsedWidth,\n collapsedWidth = _a$collapsedWidth === void 0 ? 80 : _a$collapsedWidth,\n zeroWidthTriggerStyle = _a.zeroWidthTriggerStyle,\n breakpoint = _a.breakpoint,\n onCollapse = _a.onCollapse,\n onBreakpoint = _a.onBreakpoint,\n props = __rest(_a, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n var _useContext = useContext(LayoutContext),\n siderHook = _useContext.siderHook;\n var _useState = useState('collapsed' in props ? props.collapsed : defaultCollapsed),\n _useState2 = _slicedToArray(_useState, 2),\n collapsed = _useState2[0],\n setCollapsed = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n below = _useState4[0],\n setBelow = _useState4[1];\n useEffect(function () {\n if ('collapsed' in props) {\n setCollapsed(props.collapsed);\n }\n }, [props.collapsed]);\n var handleSetCollapsed = function handleSetCollapsed(value, type) {\n if (!('collapsed' in props)) {\n setCollapsed(value);\n }\n onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n };\n // ========================= Responsive =========================\n var responsiveHandlerRef = useRef();\n responsiveHandlerRef.current = function (mql) {\n setBelow(mql.matches);\n onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n if (collapsed !== mql.matches) {\n handleSetCollapsed(mql.matches, 'responsive');\n }\n };\n useEffect(function () {\n function responsiveHandler(mql) {\n return responsiveHandlerRef.current(mql);\n }\n var mql;\n if (typeof window !== 'undefined') {\n var _window = window,\n matchMedia = _window.matchMedia;\n if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n mql = matchMedia(\"(max-width: \".concat(dimensionMaxMap[breakpoint], \")\"));\n try {\n mql.addEventListener('change', responsiveHandler);\n } catch (error) {\n mql.addListener(responsiveHandler);\n }\n responsiveHandler(mql);\n }\n }\n return function () {\n try {\n mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n } catch (error) {\n mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n }\n };\n }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n useEffect(function () {\n var uniqueId = generateId('ant-sider-');\n siderHook.addSider(uniqueId);\n return function () {\n return siderHook.removeSider(uniqueId);\n };\n }, []);\n var toggle = function toggle() {\n handleSetCollapsed(!collapsed, 'clickTrigger');\n };\n var _useContext2 = useContext(ConfigContext),\n getPrefixCls = _useContext2.getPrefixCls;\n var renderSider = function renderSider() {\n var prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n var divProps = omit(props, ['collapsed']);\n var rawWidth = collapsed ? collapsedWidth : width;\n // use \"px\" as fallback unit for width\n var siderWidth = isNumeric(rawWidth) ? \"\".concat(rawWidth, \"px\") : String(rawWidth);\n // special trigger when collapsedWidth == 0\n var zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? ( /*#__PURE__*/React.createElement(\"span\", {\n onClick: toggle,\n className: classNames(\"\".concat(prefixCls, \"-zero-width-trigger\"), \"\".concat(prefixCls, \"-zero-width-trigger-\").concat(reverseArrow ? 'right' : 'left')),\n style: zeroWidthTriggerStyle\n }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null))) : null;\n var iconObj = {\n expanded: reverseArrow ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n collapsed: reverseArrow ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n };\n var status = collapsed ? 'collapsed' : 'expanded';\n var defaultTrigger = iconObj[status];\n var triggerDom = trigger !== null ? zeroWidthTrigger || ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-trigger\"),\n onClick: toggle,\n style: {\n width: siderWidth\n }\n }, trigger || defaultTrigger)) : null;\n var divStyle = _extends(_extends({}, style), {\n flex: \"0 0 \".concat(siderWidth),\n maxWidth: siderWidth,\n minWidth: siderWidth,\n width: siderWidth\n });\n var siderCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-collapsed\"), !!collapsed), \"\".concat(prefixCls, \"-has-trigger\"), collapsible && trigger !== null && !zeroWidthTrigger), \"\".concat(prefixCls, \"-below\"), !!below), \"\".concat(prefixCls, \"-zero-width\"), parseFloat(siderWidth) === 0), className);\n return /*#__PURE__*/React.createElement(\"aside\", _extends({\n className: siderCls\n }, divProps, {\n style: divStyle,\n ref: ref\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-children\")\n }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null);\n };\n var contextValue = React.useMemo(function () {\n return {\n siderCollapsed: collapsed\n };\n }, [collapsed]);\n return /*#__PURE__*/React.createElement(SiderContext.Provider, {\n value: contextValue\n }, renderSider());\n});\nif (process.env.NODE_ENV !== 'production') {\n Sider.displayName = 'Sider';\n}\nexport default Sider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nvar MenuDivider = function MenuDivider(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n dashed = _a.dashed,\n restProps = __rest(_a, [\"prefixCls\", \"className\", \"dashed\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('menu', customizePrefixCls);\n var classString = classNames(_defineProperty({}, \"\".concat(prefixCls, \"-item-divider-dashed\"), !!dashed), className);\n return /*#__PURE__*/React.createElement(Divider, _extends({\n className: classString\n }, restProps));\n};\nexport default MenuDivider;","import { createContext } from 'react';\nvar MenuContext = /*#__PURE__*/createContext({\n prefixCls: '',\n firstLevel: true,\n inlineCollapsed: false\n});\nexport default MenuContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nvar MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n var _super = _createSuper(MenuItem);\n function MenuItem() {\n var _this;\n _classCallCheck(this, MenuItem);\n _this = _super.apply(this, arguments);\n _this.renderItem = function (_ref) {\n var siderCollapsed = _ref.siderCollapsed;\n var _a;\n var _this$context = _this.context,\n prefixCls = _this$context.prefixCls,\n firstLevel = _this$context.firstLevel,\n inlineCollapsed = _this$context.inlineCollapsed,\n direction = _this$context.direction,\n disableMenuItemTitleTooltip = _this$context.disableMenuItemTitleTooltip;\n var _this$props = _this.props,\n className = _this$props.className,\n children = _this$props.children;\n var _b = _this.props,\n title = _b.title,\n icon = _b.icon,\n danger = _b.danger,\n rest = __rest(_b, [\"title\", \"icon\", \"danger\"]);\n var tooltipTitle = title;\n if (typeof title === 'undefined') {\n tooltipTitle = firstLevel ? children : '';\n } else if (title === false) {\n tooltipTitle = '';\n }\n var tooltipProps = {\n title: tooltipTitle\n };\n if (!siderCollapsed && !inlineCollapsed) {\n tooltipProps.title = null;\n // Reset `open` to fix control mode tooltip display not correct\n // ref: https://github.com/ant-design/ant-design/issues/16742\n tooltipProps.open = false;\n }\n var childrenLength = toArray(children).length;\n var returnNode = /*#__PURE__*/React.createElement(Item, _extends({}, rest, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item-danger\"), danger), \"\".concat(prefixCls, \"-item-only-child\"), (icon ? childrenLength + 1 : childrenLength) === 1), className),\n title: typeof title === 'string' ? title : undefined\n }), cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), _this.renderItemChildren(inlineCollapsed));\n if (!disableMenuItemTitleTooltip) {\n returnNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {\n placement: direction === 'rtl' ? 'left' : 'right',\n overlayClassName: \"\".concat(prefixCls, \"-inline-collapsed-tooltip\")\n }), returnNode);\n }\n return returnNode;\n };\n return _this;\n }\n _createClass(MenuItem, [{\n key: \"renderItemChildren\",\n value: function renderItemChildren(inlineCollapsed) {\n var _this$context2 = this.context,\n prefixCls = _this$context2.prefixCls,\n firstLevel = _this$context2.firstLevel;\n var _this$props2 = this.props,\n icon = _this$props2.icon,\n children = _this$props2.children;\n var wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, children);\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n if (!icon || isValidElement(children) && children.type === 'span') {\n if (children && inlineCollapsed && firstLevel && typeof children === 'string') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, children.charAt(0));\n }\n }\n return wrapNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, this.renderItem);\n }\n }]);\n return MenuItem;\n}(React.Component);\nexport { MenuItem as default };\nMenuItem.contextType = MenuContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nfunction SubMenu(props) {\n var _a;\n var popupClassName = props.popupClassName,\n icon = props.icon,\n title = props.title,\n theme = props.theme;\n var context = React.useContext(MenuContext);\n var prefixCls = context.prefixCls,\n inlineCollapsed = context.inlineCollapsed,\n antdMenuTheme = context.antdMenuTheme;\n var parentPath = useFullPath();\n var titleNode;\n if (!icon) {\n titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inline-collapsed-noicon\")\n }, title.charAt(0))) : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n } else {\n // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n // ref: https://github.com/ant-design/ant-design/pull/23456\n var titleIsSpan = isValidElement(title) && title.type === 'span';\n titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n className: classNames(isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', \"\".concat(prefixCls, \"-item-icon\"))\n }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title-content\")\n }, title));\n }\n var contextValue = React.useMemo(function () {\n return _extends(_extends({}, context), {\n firstLevel: false\n });\n }, [context]);\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcSubMenu, _extends({}, omit(props, ['icon']), {\n title: titleNode,\n popupClassName: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(theme || antdMenuTheme), popupClassName)\n })));\n}\nexport default SubMenu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ItemGroup } from 'rc-menu';\nimport * as React from 'react';\nimport MenuDivider from '../MenuDivider';\nimport MenuItem from '../MenuItem';\nimport SubMenu from '../SubMenu';\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _a = opt,\n label = _a.label,\n children = _a.children,\n key = _a.key,\n type = _a.type,\n restProps = __rest(_a, [\"label\", \"children\", \"key\", \"type\"]);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(ItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(MenuDivider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\n// FIXME: Move logic here in v5\n/**\n * We simply convert `items` to ReactNode for reuse origin component logic. But we need move all the\n * logic from component into this hooks when in v5\n */\nexport default function useItems(items) {\n return React.useMemo(function () {\n if (!items) {\n return items;\n }\n return convertItemsToNodes(items);\n }, [items]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nvar OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport var OverrideProvider = function OverrideProvider(_a) {\n var children = _a.children,\n restProps = __rest(_a, [\"children\"]);\n var override = React.useContext(OverrideContext);\n var context = React.useMemo(function () {\n return _extends(_extends({}, override), restProps);\n }, [override, restProps.prefixCls,\n // restProps.expandIcon, Not mark as deps since this is a ReactNode\n restProps.mode, restProps.selectable\n // restProps.validator, Not mark as deps since this is a function\n ]);\n\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: context\n }, children);\n};\nexport default OverrideContext;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu, { ItemGroup } from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { SiderContext } from '../layout/Sider';\nimport collapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport useItems from './hooks/useItems';\nimport MenuContext from './MenuContext';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport SubMenu from './SubMenu';\nvar InternalMenu = /*#__PURE__*/forwardRef(function (props, ref) {\n var _a;\n var override = React.useContext(OverrideContext) || {};\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n getPopupContainer = _React$useContext.getPopupContainer,\n direction = _React$useContext.direction;\n var rootPrefixCls = getPrefixCls();\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$theme = props.theme,\n theme = _props$theme === void 0 ? 'light' : _props$theme,\n expandIcon = props.expandIcon,\n _internalDisableMenuItemTitleTooltip = props._internalDisableMenuItemTitleTooltip,\n inlineCollapsed = props.inlineCollapsed,\n siderCollapsed = props.siderCollapsed,\n items = props.items,\n children = props.children,\n mode = props.mode,\n selectable = props.selectable,\n onClick = props.onClick,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"items\", \"children\", \"mode\", \"selectable\", \"onClick\"]);\n var passedProps = omit(restProps, ['collapsedWidth']);\n // ========================= Items ===========================\n var mergedChildren = useItems(items) || children;\n // ======================== Warning ==========================\n process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'Menu', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(props.siderCollapsed !== undefined && 'inlineCollapsed' in props), 'Menu', '`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning('items' in props && !children, 'Menu', '`children` will be removed in next major version. Please use `items` instead.') : void 0;\n (_a = override.validator) === null || _a === void 0 ? void 0 : _a.call(override, {\n mode: mode\n });\n // ========================== Click ==========================\n // Tell dropdown that item clicked\n var onItemClick = useEvent(function () {\n var _a;\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n (_a = override === null || override === void 0 ? void 0 : override.onClick) === null || _a === void 0 ? void 0 : _a.call(override);\n });\n // ========================== Mode ===========================\n var mergedMode = override.mode || mode;\n // ======================= Selectable ========================\n var mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : override.selectable;\n // ======================== Collapsed ========================\n // Inline Collapsed\n var mergedInlineCollapsed = React.useMemo(function () {\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n return inlineCollapsed;\n }, [inlineCollapsed, siderCollapsed]);\n var defaultMotions = {\n horizontal: {\n motionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n },\n inline: collapseMotion,\n other: {\n motionName: \"\".concat(rootPrefixCls, \"-zoom-big\")\n }\n };\n var prefixCls = getPrefixCls('menu', customizePrefixCls || override.prefixCls);\n var menuClassName = classNames(\"\".concat(prefixCls, \"-\").concat(theme), className);\n // ====================== Expand Icon ========================\n var mergedExpandIcon;\n if (typeof expandIcon === 'function') {\n mergedExpandIcon = expandIcon;\n } else {\n mergedExpandIcon = cloneElement(expandIcon || override.expandIcon, {\n className: \"\".concat(prefixCls, \"-submenu-expand-icon\")\n });\n }\n // ======================== Context ==========================\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n inlineCollapsed: mergedInlineCollapsed || false,\n antdMenuTheme: theme,\n direction: direction,\n firstLevel: true,\n disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n };\n }, [prefixCls, mergedInlineCollapsed, theme, direction, _internalDisableMenuItemTitleTooltip]);\n // ========================= Render ==========================\n return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(RcMenu, _extends({\n getPopupContainer: getPopupContainer,\n overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n overflowedIndicatorPopupClassName: \"\".concat(prefixCls, \"-\").concat(theme),\n mode: mergedMode,\n selectable: mergedSelectable,\n onClick: onItemClick\n }, passedProps, {\n inlineCollapsed: mergedInlineCollapsed,\n className: menuClassName,\n prefixCls: prefixCls,\n direction: direction,\n defaultMotions: defaultMotions,\n expandIcon: mergedExpandIcon,\n ref: ref\n }), mergedChildren)));\n});\n// We should keep this as ref-able\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n var _super = _createSuper(Menu);\n function Menu() {\n var _this;\n _classCallCheck(this, Menu);\n _this = _super.apply(this, arguments);\n _this.focus = function (options) {\n var _a;\n (_a = _this.menu) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n return _this;\n }\n _createClass(Menu, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n return /*#__PURE__*/React.createElement(SiderContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalMenu, _extends({\n ref: function ref(node) {\n _this2.menu = node;\n }\n }, _this2.props, context));\n });\n }\n }]);\n return Menu;\n}(React.Component);\nMenu.Divider = MenuDivider;\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.ItemGroup = ItemGroup;\nexport default Menu;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport { useCompactItemContext } from '../space/Compact';\nimport Dropdown from './dropdown';\nimport Space from '../space';\nvar DropdownButton = function DropdownButton(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n _props$type = props.type,\n type = _props$type === void 0 ? 'default' : _props$type,\n danger = props.danger,\n disabled = props.disabled,\n loading = props.loading,\n onClick = props.onClick,\n htmlType = props.htmlType,\n children = props.children,\n className = props.className,\n menu = props.menu,\n arrow = props.arrow,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n trigger = props.trigger,\n align = props.align,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n placement = props.placement,\n getPopupContainer = props.getPopupContainer,\n href = props.href,\n _props$icon = props.icon,\n icon = _props$icon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$icon,\n title = props.title,\n _props$buttonsRender = props.buttonsRender,\n buttonsRender = _props$buttonsRender === void 0 ? function (buttons) {\n return buttons;\n } : _props$buttonsRender,\n mouseEnterDelay = props.mouseEnterDelay,\n mouseLeaveDelay = props.mouseLeaveDelay,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n destroyPopupOnHide = props.destroyPopupOnHide,\n restProps = __rest(props, [\"prefixCls\", \"type\", \"danger\", \"disabled\", \"loading\", \"onClick\", \"htmlType\", \"children\", \"className\", \"menu\", \"arrow\", \"autoFocus\", \"overlay\", \"trigger\", \"align\", \"visible\", \"open\", \"onVisibleChange\", \"onOpenChange\", \"placement\", \"getPopupContainer\", \"href\", \"icon\", \"title\", \"buttonsRender\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayClassName\", \"overlayStyle\", \"destroyPopupOnHide\"]);\n var prefixCls = getPrefixCls('dropdown-button', customizePrefixCls);\n var dropdownProps = {\n menu: menu,\n arrow: arrow,\n autoFocus: autoFocus,\n align: align,\n disabled: disabled,\n trigger: disabled ? [] : trigger,\n onOpenChange: onOpenChange || onVisibleChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n overlayClassName: overlayClassName,\n overlayStyle: overlayStyle,\n destroyPopupOnHide: destroyPopupOnHide\n };\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var classes = classNames(prefixCls, compactItemClassnames, className);\n if ('overlay' in props) {\n dropdownProps.overlay = overlay;\n }\n if ('open' in props) {\n dropdownProps.open = open;\n } else if ('visible' in props) {\n dropdownProps.open = visible;\n }\n if ('placement' in props) {\n dropdownProps.placement = placement;\n } else {\n dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';\n }\n var leftButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n disabled: disabled,\n loading: loading,\n onClick: onClick,\n htmlType: htmlType,\n href: href,\n title: title\n }, children);\n var rightButton = /*#__PURE__*/React.createElement(Button, {\n type: type,\n danger: danger,\n icon: icon\n });\n var _buttonsRender = buttonsRender([leftButton, rightButton]),\n _buttonsRender2 = _slicedToArray(_buttonsRender, 2),\n leftButtonToRender = _buttonsRender2[0],\n rightButtonToRender = _buttonsRender2[1];\n return /*#__PURE__*/React.createElement(Space.Compact, _extends({\n className: classes,\n size: compactSize,\n block: true\n }, restProps), leftButtonToRender, /*#__PURE__*/React.createElement(Dropdown, _extends({}, dropdownProps), rightButtonToRender));\n};\nDropdownButton.__ANT_BUTTON = true;\nexport default DropdownButton;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcDropdown from 'rc-dropdown';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport Menu from '../menu';\nimport { ConfigContext } from '../config-provider';\nimport { OverrideProvider } from '../menu/OverrideContext';\nimport getPlacements from '../_util/placements';\nimport { cloneElement } from '../_util/reactNode';\nimport { tuple } from '../_util/type';\nimport warning from '../_util/warning';\nimport DropdownButton from './dropdown-button';\nimport { NoCompactStyle } from '../space/Compact';\nvar Placements = tuple('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight', 'top', 'bottom');\nvar Dropdown = function Dropdown(props) {\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['onVisibleChange', 'onOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Dropdown', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version, please use `\").concat(newName, \"` instead.\")) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!('overlay' in props), 'Dropdown', '`overlay` is deprecated. Please use `menu` instead.') : void 0;\n }\n var getTransitionName = function getTransitionName() {\n var rootPrefixCls = getPrefixCls();\n var _props$placement = props.placement,\n placement = _props$placement === void 0 ? '' : _props$placement,\n transitionName = props.transitionName;\n if (transitionName !== undefined) {\n return transitionName;\n }\n if (placement.includes('top')) {\n return \"\".concat(rootPrefixCls, \"-slide-down\");\n }\n return \"\".concat(rootPrefixCls, \"-slide-up\");\n };\n var getPlacement = function getPlacement() {\n var placement = props.placement;\n if (!placement) {\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n }\n if (placement.includes('Center')) {\n var newPlacement = placement.slice(0, placement.indexOf('Center'));\n process.env.NODE_ENV !== \"production\" ? warning(!placement.includes('Center'), 'Dropdown', \"You are using '\".concat(placement, \"' placement in Dropdown, which is deprecated. Try to use '\").concat(newPlacement, \"' instead.\")) : void 0;\n return newPlacement;\n }\n return placement;\n };\n var menu = props.menu,\n arrow = props.arrow,\n customizePrefixCls = props.prefixCls,\n children = props.children,\n trigger = props.trigger,\n disabled = props.disabled,\n dropdownRender = props.dropdownRender,\n getPopupContainer = props.getPopupContainer,\n overlayClassName = props.overlayClassName,\n visible = props.visible,\n open = props.open,\n onVisibleChange = props.onVisibleChange,\n onOpenChange = props.onOpenChange,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0.15 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n _props$autoAdjustOver = props.autoAdjustOverflow,\n autoAdjustOverflow = _props$autoAdjustOver === void 0 ? true : _props$autoAdjustOver;\n var prefixCls = getPrefixCls('dropdown', customizePrefixCls);\n var child = React.Children.only(children);\n var dropdownTrigger = cloneElement(child, {\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), child.props.className),\n disabled: disabled\n });\n var triggerActions = disabled ? [] : trigger;\n var alignPoint;\n if (triggerActions && triggerActions.includes('contextMenu')) {\n alignPoint = true;\n }\n // =========================== Visible ============================\n var _useMergedState = useMergedState(false, {\n value: open !== undefined ? open : visible\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpen = _useMergedState2[0],\n setOpen = _useMergedState2[1];\n var onInnerOpenChange = useEvent(function (nextOpen) {\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);\n setOpen(nextOpen);\n });\n // =========================== Overlay ============================\n var overlayClassNameCustomized = classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n var builtinPlacements = getPlacements({\n arrowPointAtCenter: _typeof(arrow) === 'object' && arrow.pointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n var onMenuClick = React.useCallback(function () {\n setOpen(false);\n }, []);\n var renderOverlay = function renderOverlay() {\n // rc-dropdown already can process the function of overlay, but we have check logic here.\n // So we need render the element to check and pass back to rc-dropdown.\n var overlay = props.overlay;\n var overlayNode;\n if (menu === null || menu === void 0 ? void 0 : menu.items) {\n overlayNode = /*#__PURE__*/React.createElement(Menu, _extends({}, menu));\n } else if (typeof overlay === 'function') {\n overlayNode = overlay();\n } else {\n overlayNode = overlay;\n }\n if (dropdownRender) {\n overlayNode = dropdownRender(overlayNode);\n }\n overlayNode = React.Children.only(typeof overlayNode === 'string' ? /*#__PURE__*/React.createElement(\"span\", null, overlayNode) : overlayNode);\n return /*#__PURE__*/React.createElement(OverrideProvider, {\n prefixCls: \"\".concat(prefixCls, \"-menu\"),\n expandIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow\")\n }, /*#__PURE__*/React.createElement(RightOutlined, {\n className: \"\".concat(prefixCls, \"-menu-submenu-arrow-icon\")\n })),\n mode: \"vertical\",\n selectable: false,\n onClick: onMenuClick,\n validator: function validator(_ref3) {\n var mode = _ref3.mode;\n // Warning if use other mode\n process.env.NODE_ENV !== \"production\" ? warning(!mode || mode === 'vertical', 'Dropdown', \"mode=\\\"\".concat(mode, \"\\\" is not supported for Dropdown's Menu.\")) : void 0;\n }\n }, /*#__PURE__*/React.createElement(NoCompactStyle, null, overlayNode));\n };\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(RcDropdown, _extends({\n alignPoint: alignPoint\n }, props, {\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n visible: mergedOpen,\n builtinPlacements: builtinPlacements,\n arrow: !!arrow,\n overlayClassName: overlayClassNameCustomized,\n prefixCls: prefixCls,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n transitionName: getTransitionName(),\n trigger: triggerActions,\n overlay: renderOverlay,\n placement: getPlacement(),\n onVisibleChange: onInnerOpenChange\n }), dropdownTrigger);\n};\nDropdown.Button = DropdownButton;\nexport default Dropdown;","import Dropdown from './dropdown';\nexport default Dropdown;","import * as React from 'react';\nvar RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport var RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport var RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport var RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nvar InternalRadio = function InternalRadio(props, ref) {\n var _a, _b;\n var groupContext = React.useContext(RadioGroupContext);\n var radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var innerRef = React.useRef();\n var mergedRef = composeRef(ref, innerRef);\n var _useContext = useContext(FormItemInputContext),\n isFormItemInput = _useContext.isFormItemInput;\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'Radio', '`optionType` is only support in Radio.Group.') : void 0;\n var onChange = function onChange(e) {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n children = props.children,\n style = props.style,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"children\", \"style\"]);\n var radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n var prefixCls = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button' ? \"\".concat(radioPrefixCls, \"-button\") : radioPrefixCls;\n var radioProps = _extends({}, restProps);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n }\n radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n var wrapperClassString = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-wrapper-checked\"), radioProps.checked), \"\".concat(prefixCls, \"-wrapper-disabled\"), radioProps.disabled), \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-wrapper-in-form-item\"), isFormItemInput), className);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n React.createElement(\"label\", {\n className: wrapperClassString,\n style: style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave\n }, /*#__PURE__*/React.createElement(RcCheckbox, _extends({}, radioProps, {\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", null, children) : null)\n );\n};\nvar Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var onRadioChange = function onRadioChange(ev) {\n var lastValue = value;\n var val = ev.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n var onChange = props.onChange;\n if (onChange && val !== lastValue) {\n onChange(ev);\n }\n };\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n options = props.options,\n _props$buttonStyle = props.buttonStyle,\n buttonStyle = _props$buttonStyle === void 0 ? 'outline' : _props$buttonStyle,\n disabled = props.disabled,\n children = props.children,\n customizeSize = props.size,\n style = props.style,\n id = props.id,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onFocus = props.onFocus,\n onBlur = props.onBlur;\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n var groupPrefixCls = \"\".concat(prefixCls, \"-group\");\n var childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(function (option) {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: \"radio-group-value-options-\".concat(option.value),\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n style: option.style\n }, option.label);\n });\n }\n var mergedSize = customizeSize || size;\n var classString = classNames(groupPrefixCls, \"\".concat(groupPrefixCls, \"-\").concat(buttonStyle), _defineProperty(_defineProperty({}, \"\".concat(groupPrefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(groupPrefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, getDataOrAriaProps(props), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: {\n onChange: onRadioChange,\n value: value,\n disabled: props.disabled,\n name: props.name,\n optionType: props.optionType\n }\n }, childrenToRender));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nvar RadioButton = function RadioButton(props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var customizePrefixCls = props.prefixCls,\n radioProps = __rest(props, [\"prefixCls\"]);\n var prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, _extends({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","import Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nvar Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n var _classNames;\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(baseClassName, \"-start\"), isStart[i]), _defineProperty(_classNames, \"\".concat(baseClassName, \"-end\"), isEnd[i]), _classNames))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","export default function getEntity(keyEntities, key) {\n return keyEntities[key];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n // Add FlattenDataNode into list\n var flattenNode = _objectSpread(_objectSpread({}, omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren]))), {}, {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(data);\n }\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = getEntity(keyEntities, key);\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\n// @ts-ignore\nimport { TreeContext } from './contextTypes';\nimport Indent from './Indent';\nimport getEntity from './utils/keyUtil';\nimport { convertNodePropsToEventData } from './utils/treeUtil';\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar InternalTreeNode = /*#__PURE__*/function (_React$Component) {\n _inherits(InternalTreeNode, _React$Component);\n var _super = _createSuper(InternalTreeNode);\n function InternalTreeNode() {\n var _this;\n _classCallCheck(this, InternalTreeNode);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n dragNodeHighlight: false\n };\n _this.selectHandle = void 0;\n _this.cacheIndent = void 0;\n _this.onSelectorClick = function (e) {\n // Click trigger before select/check operation\n var onNodeClick = _this.props.context.onNodeClick;\n onNodeClick(e, convertNodePropsToEventData(_this.props));\n if (_this.isSelectable()) {\n _this.onSelect(e);\n } else {\n _this.onCheck(e);\n }\n };\n _this.onSelectorDoubleClick = function (e) {\n var onNodeDoubleClick = _this.props.context.onNodeDoubleClick;\n onNodeDoubleClick(e, convertNodePropsToEventData(_this.props));\n };\n _this.onSelect = function (e) {\n if (_this.isDisabled()) return;\n var onNodeSelect = _this.props.context.onNodeSelect;\n onNodeSelect(e, convertNodePropsToEventData(_this.props));\n };\n _this.onCheck = function (e) {\n if (_this.isDisabled()) return;\n var _this$props = _this.props,\n disableCheckbox = _this$props.disableCheckbox,\n checked = _this$props.checked;\n var onNodeCheck = _this.props.context.onNodeCheck;\n if (!_this.isCheckable() || disableCheckbox) return;\n var targetChecked = !checked;\n onNodeCheck(e, convertNodePropsToEventData(_this.props), targetChecked);\n };\n _this.onMouseEnter = function (e) {\n var onNodeMouseEnter = _this.props.context.onNodeMouseEnter;\n onNodeMouseEnter(e, convertNodePropsToEventData(_this.props));\n };\n _this.onMouseLeave = function (e) {\n var onNodeMouseLeave = _this.props.context.onNodeMouseLeave;\n onNodeMouseLeave(e, convertNodePropsToEventData(_this.props));\n };\n _this.onContextMenu = function (e) {\n var onNodeContextMenu = _this.props.context.onNodeContextMenu;\n onNodeContextMenu(e, convertNodePropsToEventData(_this.props));\n };\n _this.onDragStart = function (e) {\n var onNodeDragStart = _this.props.context.onNodeDragStart;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: true\n });\n onNodeDragStart(e, _assertThisInitialized(_this));\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (error) {\n // empty\n }\n };\n _this.onDragEnter = function (e) {\n var onNodeDragEnter = _this.props.context.onNodeDragEnter;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragEnter(e, _assertThisInitialized(_this));\n };\n _this.onDragOver = function (e) {\n var onNodeDragOver = _this.props.context.onNodeDragOver;\n e.preventDefault();\n e.stopPropagation();\n onNodeDragOver(e, _assertThisInitialized(_this));\n };\n _this.onDragLeave = function (e) {\n var onNodeDragLeave = _this.props.context.onNodeDragLeave;\n e.stopPropagation();\n onNodeDragLeave(e, _assertThisInitialized(_this));\n };\n _this.onDragEnd = function (e) {\n var onNodeDragEnd = _this.props.context.onNodeDragEnd;\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDragEnd(e, _assertThisInitialized(_this));\n };\n _this.onDrop = function (e) {\n var onNodeDrop = _this.props.context.onNodeDrop;\n e.preventDefault();\n e.stopPropagation();\n _this.setState({\n dragNodeHighlight: false\n });\n onNodeDrop(e, _assertThisInitialized(_this));\n };\n // Disabled item still can be switch\n _this.onExpand = function (e) {\n var _this$props2 = _this.props,\n loading = _this$props2.loading,\n onNodeExpand = _this$props2.context.onNodeExpand;\n if (loading) return;\n onNodeExpand(e, convertNodePropsToEventData(_this.props));\n };\n // Drag usage\n _this.setSelectHandle = function (node) {\n _this.selectHandle = node;\n };\n _this.getNodeState = function () {\n var expanded = _this.props.expanded;\n if (_this.isLeaf()) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n };\n _this.hasChildren = function () {\n var eventKey = _this.props.eventKey;\n var keyEntities = _this.props.context.keyEntities;\n var _ref = getEntity(keyEntities, eventKey) || {},\n children = _ref.children;\n return !!(children || []).length;\n };\n _this.isLeaf = function () {\n var _this$props3 = _this.props,\n isLeaf = _this$props3.isLeaf,\n loaded = _this$props3.loaded;\n var loadData = _this.props.context.loadData;\n var hasChildren = _this.hasChildren();\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !loadData && !hasChildren || loadData && loaded && !hasChildren;\n };\n _this.isDisabled = function () {\n var disabled = _this.props.disabled;\n var treeDisabled = _this.props.context.disabled;\n return !!(treeDisabled || disabled);\n };\n _this.isCheckable = function () {\n var checkable = _this.props.checkable;\n var treeCheckable = _this.props.context.checkable;\n // Return false if tree or treeNode is not checkable\n if (!treeCheckable || checkable === false) return false;\n return treeCheckable;\n };\n // Load data to avoid default expanded tree without data\n _this.syncLoadData = function (props) {\n var expanded = props.expanded,\n loading = props.loading,\n loaded = props.loaded;\n var _this$props$context = _this.props.context,\n loadData = _this$props$context.loadData,\n onNodeLoad = _this$props$context.onNodeLoad;\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (loadData && expanded && !_this.isLeaf()) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n if (!_this.hasChildren() && !loaded) {\n onNodeLoad(convertNodePropsToEventData(_this.props));\n }\n }\n };\n _this.isDraggable = function () {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n draggable = _this$props4.context.draggable;\n return !!(draggable && (!draggable.nodeDraggable || draggable.nodeDraggable(data)));\n };\n // ==================== Render: Drag Handler ====================\n _this.renderDragHandler = function () {\n var _this$props$context2 = _this.props.context,\n draggable = _this$props$context2.draggable,\n prefixCls = _this$props$context2.prefixCls;\n return (draggable === null || draggable === void 0 ? void 0 : draggable.icon) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-draggable-icon\")\n }, draggable.icon) : null;\n };\n // ====================== Render: Switcher ======================\n _this.renderSwitcherIconDom = function (isLeaf) {\n var switcherIconFromProps = _this.props.switcherIcon;\n var switcherIconFromCtx = _this.props.context.switcherIcon;\n var switcherIcon = switcherIconFromProps || switcherIconFromCtx;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, _this.props), {}, {\n isLeaf: isLeaf\n }));\n }\n return switcherIcon;\n };\n // Switcher\n _this.renderSwitcher = function () {\n var expanded = _this.props.expanded;\n var prefixCls = _this.props.context.prefixCls;\n if (_this.isLeaf()) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = _this.renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherCls = classNames(\"\".concat(prefixCls, \"-switcher\"), \"\".concat(prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE));\n var switcherIconDom = _this.renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: _this.onExpand,\n className: switcherCls\n }, switcherIconDom) : null;\n };\n // ====================== Render: Checkbox ======================\n // Checkbox\n _this.renderCheckbox = function () {\n var _this$props5 = _this.props,\n checked = _this$props5.checked,\n halfChecked = _this$props5.halfChecked,\n disableCheckbox = _this$props5.disableCheckbox;\n var prefixCls = _this.props.context.prefixCls;\n var disabled = _this.isDisabled();\n var checkable = _this.isCheckable();\n if (!checkable) return null;\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof checkable !== 'boolean' ? checkable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-checkbox\"), checked && \"\".concat(prefixCls, \"-checkbox-checked\"), !checked && halfChecked && \"\".concat(prefixCls, \"-checkbox-indeterminate\"), (disabled || disableCheckbox) && \"\".concat(prefixCls, \"-checkbox-disabled\")),\n onClick: _this.onCheck\n }, $custom);\n };\n // ==================== Render: Title + Icon ====================\n _this.renderIcon = function () {\n var loading = _this.props.loading;\n var prefixCls = _this.props.context.prefixCls;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__\").concat(_this.getNodeState() || 'docu'), loading && \"\".concat(prefixCls, \"-icon_loading\"))\n });\n };\n // Icon + Title\n _this.renderSelector = function () {\n var dragNodeHighlight = _this.state.dragNodeHighlight;\n var _this$props6 = _this.props,\n _this$props6$title = _this$props6.title,\n title = _this$props6$title === void 0 ? defaultTitle : _this$props6$title,\n selected = _this$props6.selected,\n icon = _this$props6.icon,\n loading = _this$props6.loading,\n data = _this$props6.data;\n var _this$props$context3 = _this.props.context,\n prefixCls = _this$props$context3.prefixCls,\n showIcon = _this$props$context3.showIcon,\n treeIcon = _this$props$context3.icon,\n loadData = _this$props$context3.loadData,\n titleRender = _this$props$context3.titleRender;\n var disabled = _this.isDisabled();\n var wrapClass = \"\".concat(prefixCls, \"-node-content-wrapper\");\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (showIcon) {\n var currentIcon = icon || treeIcon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-iconEle\"), \"\".concat(prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(_this.props) : currentIcon) : _this.renderIcon();\n } else if (loadData && loading) {\n $icon = _this.renderIcon();\n }\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (titleRender) {\n titleNode = titleRender(data);\n } else {\n titleNode = title;\n }\n var $title = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, titleNode);\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: _this.setSelectHandle,\n title: typeof title === 'string' ? title : '',\n className: classNames(\"\".concat(wrapClass), \"\".concat(wrapClass, \"-\").concat(_this.getNodeState() || 'normal'), !disabled && (selected || dragNodeHighlight) && \"\".concat(prefixCls, \"-node-selected\")),\n onMouseEnter: _this.onMouseEnter,\n onMouseLeave: _this.onMouseLeave,\n onContextMenu: _this.onContextMenu,\n onClick: _this.onSelectorClick,\n onDoubleClick: _this.onSelectorDoubleClick\n }, $icon, $title, _this.renderDropIndicator());\n };\n // =================== Render: Drop Indicator ===================\n _this.renderDropIndicator = function () {\n var _this$props7 = _this.props,\n disabled = _this$props7.disabled,\n eventKey = _this$props7.eventKey;\n var _this$props$context4 = _this.props.context,\n draggable = _this$props$context4.draggable,\n dropLevelOffset = _this$props$context4.dropLevelOffset,\n dropPosition = _this$props$context4.dropPosition,\n prefixCls = _this$props$context4.prefixCls,\n indent = _this$props$context4.indent,\n dropIndicatorRender = _this$props$context4.dropIndicatorRender,\n dragOverNodeKey = _this$props$context4.dragOverNodeKey,\n direction = _this$props$context4.direction;\n var rootDraggable = !!draggable;\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !disabled && rootDraggable && dragOverNodeKey === eventKey;\n // This is a hot fix which is already fixed in\n // https://github.com/react-component/tree/pull/743/files\n // But some case need break point so we hack on this\n // ref https://github.com/ant-design/ant-design/issues/43493\n var mergedIndent = indent !== null && indent !== void 0 ? indent : _this.cacheIndent;\n _this.cacheIndent = indent;\n return showIndicator ? dropIndicatorRender({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n indent: mergedIndent,\n prefixCls: prefixCls,\n direction: direction\n }) : null;\n };\n return _this;\n }\n _createClass(InternalTreeNode, [{\n key: \"componentDidMount\",\n value:\n // Isomorphic needn't load data in server side\n function componentDidMount() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.syncLoadData(this.props);\n }\n }, {\n key: \"isSelectable\",\n value: function isSelectable() {\n var selectable = this.props.selectable;\n var treeSelectable = this.props.context.selectable;\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return treeSelectable;\n }\n }, {\n key: \"render\",\n value:\n // =========================== Render ===========================\n function render() {\n var _classNames;\n var _this$props8 = this.props,\n eventKey = _this$props8.eventKey,\n className = _this$props8.className,\n style = _this$props8.style,\n dragOver = _this$props8.dragOver,\n dragOverGapTop = _this$props8.dragOverGapTop,\n dragOverGapBottom = _this$props8.dragOverGapBottom,\n isLeaf = _this$props8.isLeaf,\n isStart = _this$props8.isStart,\n isEnd = _this$props8.isEnd,\n expanded = _this$props8.expanded,\n selected = _this$props8.selected,\n checked = _this$props8.checked,\n halfChecked = _this$props8.halfChecked,\n loading = _this$props8.loading,\n domRef = _this$props8.domRef,\n active = _this$props8.active,\n data = _this$props8.data,\n onMouseMove = _this$props8.onMouseMove,\n selectable = _this$props8.selectable,\n otherProps = _objectWithoutProperties(_this$props8, _excluded);\n var _this$props$context5 = this.props.context,\n prefixCls = _this$props$context5.prefixCls,\n filterTreeNode = _this$props$context5.filterTreeNode,\n keyEntities = _this$props$context5.keyEntities,\n dropContainerKey = _this$props$context5.dropContainerKey,\n dropTargetKey = _this$props$context5.dropTargetKey,\n draggingNodeKey = _this$props$context5.draggingNodeKey;\n var disabled = this.isDisabled();\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = getEntity(keyEntities, eventKey) || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var mergedDraggable = this.isDraggable();\n var draggableWithoutDisabled = !disabled && mergedDraggable;\n var dragging = draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n className: classNames(className, \"\".concat(prefixCls, \"-treenode\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-checked\"), checked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-selected\"), selected), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-loading\"), loading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-leaf-last\"), isEndNode), _defineProperty(_classNames, \"\".concat(prefixCls, \"-treenode-draggable\"), mergedDraggable), _defineProperty(_classNames, \"dragging\", dragging), _defineProperty(_classNames, 'drop-target', dropTargetKey === eventKey), _defineProperty(_classNames, 'drop-container', dropContainerKey === eventKey), _defineProperty(_classNames, 'drag-over', !disabled && dragOver), _defineProperty(_classNames, 'drag-over-gap-top', !disabled && dragOverGapTop), _defineProperty(_classNames, 'drag-over-gap-bottom', !disabled && dragOverGapBottom), _defineProperty(_classNames, 'filter-node', filterTreeNode && filterTreeNode(convertNodePropsToEventData(this.props))), _classNames)),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n \"aria-grabbed\": dragging,\n onDragStart: draggableWithoutDisabled ? this.onDragStart : undefined\n // Drop config\n ,\n onDragEnter: mergedDraggable ? this.onDragEnter : undefined,\n onDragOver: mergedDraggable ? this.onDragOver : undefined,\n onDragLeave: mergedDraggable ? this.onDragLeave : undefined,\n onDrop: mergedDraggable ? this.onDrop : undefined,\n onDragEnd: mergedDraggable ? this.onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), this.renderDragHandler(), this.renderSwitcher(), this.renderCheckbox(), this.renderSelector());\n }\n }]);\n return InternalTreeNode;\n}(React.Component);\nvar ContextTreeNode = function ContextTreeNode(props) {\n return /*#__PURE__*/React.createElement(TreeContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(InternalTreeNode, _extends({}, props, {\n context: context\n }));\n });\n};\nContextTreeNode.displayName = 'TreeNode';\nContextTreeNode.isTreeNode = 1;\nexport default ContextTreeNode;","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport TreeNode from './TreeNode';\nimport useUnmount from './useUnmount';\nimport { getTreeNodeProps } from './utils/treeUtil';\nvar MotionTreeNode = function MotionTreeNode(_ref, ref) {\n var className = _ref.className,\n style = _ref.style,\n motion = _ref.motion,\n motionNodes = _ref.motionNodes,\n motionType = _ref.motionType,\n onOriginMotionStart = _ref.onMotionStart,\n onOriginMotionEnd = _ref.onMotionEnd,\n active = _ref.active,\n treeNodeRequiredProps = _ref.treeNodeRequiredProps,\n props = _objectWithoutProperties(_ref, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref2, motionRef) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n};\nMotionTreeNode.displayName = 'MotionTreeNode';\nvar RefMotionTreeNode = /*#__PURE__*/React.forwardRef(MotionTreeNode);\nexport default RefMotionTreeNode;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Trigger only when component unmount\n */\nexport default function useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n React.useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n React.useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from './MotionTreeNode';\nimport { findExpandedKeys, getExpandRange } from './utils/diffUtil';\nimport { getKey, getTreeNodeProps } from './utils/treeUtil';\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n onVisibleChange: function onVisibleChange(originList, fullList) {\n var originSet = new Set(originList);\n var restList = fullList.filter(function (item) {\n return !originSet.has(item);\n });\n // Motion node is not render. Skip motion\n if (restList.some(function (item) {\n return itemKey(item) === MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = _extends({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nNodeList.displayName = 'NodeList';\nexport default NodeList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from './TreeNode';\nimport getEntity from './utils/keyUtil';\nexport { getPosition, isTreeNode } from './utils/treeUtil';\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = getEntity(keyEntities, dragNodeKey);\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNode, targetNode, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _event$target$getBoun = event.target.getBoundingClientRect(),\n top = _event$target$getBoun.top,\n height = _event$target$getBoun.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = getEntity(keyEntities, targetNode.props.eventKey);\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n // Only allow cross level drop when dragging on a non-expanded node\n if (!expandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNode.props.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNode.props.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && expandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = getEntity(keyEntities, key);\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nimport getEntity from './keyUtil';\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from './contextTypes';\nimport DropIndicator from './DropIndicator';\nimport NodeList, { MotionEntity, MOTION_KEY } from './NodeList';\nimport TreeNode from './TreeNode';\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from './util';\nimport { conductCheck } from './utils/conductUtil';\nimport getEntity from './utils/keyUtil';\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from './utils/treeUtil';\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _this.destroyed = false;\n _this.delayedDragEnterLogic = void 0;\n _this.loadingRetryTimes = {};\n _this.state = {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropLevelOffset: null,\n dropTargetPos: null,\n dropAllowed: true,\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n };\n _this.dragStartMousePosition = null;\n _this.dragNode = void 0;\n _this.currentMouseOverDroppableNodeKey = null;\n _this.listRef = /*#__PURE__*/React.createRef();\n _this.onNodeDragStart = function (event, node) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = node.props.eventKey;\n _this.dragNode = node;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _this.onNodeDragEnter = function (event, node) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var _node$props = node.props,\n pos = _node$props.pos,\n eventKey = _node$props.eventKey;\n var _assertThisInitialize = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize.dragNode;\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!dragNode) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.indexOf(dropTargetKey) !== -1 ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (dragNode.props.eventKey !== node.props.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) return;\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = getEntity(keyEntities, node.props.eventKey);\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, node.props.eventKey);\n }\n if (!('expandedKeys' in _this.props)) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(node.props),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n // Skip if drag node is self\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter({\n event: event,\n node: convertNodePropsToEventData(node.props),\n expandedKeys: expandedKeys\n });\n };\n _this.onNodeDragOver = function (event, node) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n dragNode = _assertThisInitialize2.dragNode;\n if (!dragNode) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, dragNode, node, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n return;\n }\n // Update drag position\n if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n _this.onNodeDragLeave = function (event, node) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n };\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _this.onWindowDragEnd = function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _this.onNodeDragEnd = function (event, node) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd({\n event: event,\n node: convertNodePropsToEventData(node.props)\n });\n _this.dragNode = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n };\n _this.onNodeDrop = function (event, node) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) return;\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: getEntity(_this.state.keyEntities, dropTargetKey).node\n });\n var dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNode ? convertNodePropsToEventData(_this.dragNode.props) : null,\n dragNodesKeys: [_this.dragNode.props.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(dropResult);\n }\n _this.dragNode = null;\n };\n _this.cleanDragState = function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n };\n _this.triggerExpandActionExpand = function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n };\n _this.onNodeClick = function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e, treeNode);\n };\n _this.onNodeDoubleClick = function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e, treeNode);\n };\n _this.onNodeSelect = function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = getEntity(keyEntities, selectedKey);\n if (!entity) return null;\n return entity.node;\n }).filter(function (node) {\n return node;\n });\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n };\n _this.onNodeCheck = function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return getEntity(keyEntities, checkedKey);\n }).filter(function (entity) {\n return entity;\n }).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(checkedObj, eventObj);\n };\n _this.onNodeLoad = function (treeNode) {\n var key = treeNode.key;\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {\n return null;\n }\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n };\n _this.onNodeMouseEnter = function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n event: event,\n node: node\n });\n };\n _this.onNodeMouseLeave = function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n event: event,\n node: node\n });\n };\n _this.onNodeContextMenu = function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n };\n _this.onFocus = function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 ? void 0 : onFocus.apply(void 0, args);\n };\n _this.onBlur = function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 ? void 0 : onBlur.apply(void 0, args);\n };\n _this.getTreeNodeRequiredProps = function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n };\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _this.setExpandedKeys = function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n };\n _this.onNodeExpand = function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n // Update selected keys\n var index = expandedKeys.indexOf(key);\n var targetExpanded = !expanded;\n warning(expanded && index !== -1 || !expanded && index === -1, 'Expand state not sync with index check');\n if (targetExpanded) {\n expandedKeys = arrAdd(expandedKeys, key);\n } else {\n expandedKeys = arrDel(expandedKeys, key);\n }\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n };\n _this.onListChangeStart = function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n };\n _this.onListChangeEnd = function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n };\n // =========================== Keyboard ===========================\n _this.onActiveChange = function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var onActiveChange = _this.props.onActiveChange;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey\n });\n }\n onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(newActiveKey);\n };\n _this.getActiveItem = function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n };\n _this.offsetActiveKey = function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var key = item.key;\n _this.onActiveChange(key);\n } else {\n _this.onActiveChange(null);\n }\n };\n _this.onKeyDown = function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props9 = _this.props,\n onKeyDown = _this$props9.onKeyDown,\n checkable = _this$props9.checkable,\n selectable = _this$props9.selectable;\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n };\n /**\n * Only update the value which is not in props\n */\n _this.setUncontrolledState = function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (name in _this.props) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n };\n _this.scrollTo = function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n };\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var activeKey = this.props.activeKey;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props10 = this.props,\n prefixCls = _this$props10.prefixCls,\n className = _this$props10.className,\n style = _this$props10.style,\n showLine = _this$props10.showLine,\n focusable = _this$props10.focusable,\n _this$props10$tabInde = _this$props10.tabIndex,\n tabIndex = _this$props10$tabInde === void 0 ? 0 : _this$props10$tabInde,\n selectable = _this$props10.selectable,\n showIcon = _this$props10.showIcon,\n icon = _this$props10.icon,\n switcherIcon = _this$props10.switcherIcon,\n draggable = _this$props10.draggable,\n checkable = _this$props10.checkable,\n checkStrictly = _this$props10.checkStrictly,\n disabled = _this$props10.disabled,\n motion = _this$props10.motion,\n loadData = _this$props10.loadData,\n filterTreeNode = _this$props10.filterTreeNode,\n height = _this$props10.height,\n itemHeight = _this$props10.itemHeight,\n virtual = _this$props10.virtual,\n titleRender = _this$props10.titleRender,\n dropIndicatorRender = _this$props10.dropIndicatorRender,\n onContextMenu = _this$props10.onContextMenu,\n onScroll = _this$props10.onScroll,\n direction = _this$props10.direction,\n rootClassName = _this$props10.rootClassName,\n rootStyle = _this$props10.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tree\",\n className: classNames(prefixCls, className, rootClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-line\"), showLine), _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames, \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null), _classNames)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && name in props || prevProps && prevProps[name] !== props[name];\n }\n // ================== Tree Node ==================\n var treeData;\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n newState.expandedKeys = Object.keys(cloneKeyEntities).map(function (key) {\n return cloneKeyEntities[key].key;\n });\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\nTree.defaultProps = {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n};\nTree.TreeNode = TreeNode;\nexport default Tree;","import * as React from 'react';\nexport default function DropIndicator(_ref) {\n var dropPosition = _ref.dropPosition,\n dropLevelOffset = _ref.dropLevelOffset,\n indent = _ref.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n}","import Tree from './Tree';\nimport TreeNode from './TreeNode';\nexport { TreeNode };\nexport default Tree;","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\nHolderOutlined.displayName = 'HolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(HolderOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nexport var offset = 4;\nexport default function dropIndicatorRender(props) {\n var dropPosition = props.dropPosition,\n dropLevelOffset = props.dropLevelOffset,\n prefixCls = props.prefixCls,\n indent = props.indent,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'ltr' : _props$direction;\n var startPosition = direction === 'ltr' ? 'left' : 'right';\n var endPosition = direction === 'ltr' ? 'right' : 'left';\n var style = _defineProperty(_defineProperty({}, startPosition, -dropLevelOffset * indent + offset), endPosition, 0);\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: \"\".concat(prefixCls, \"-drop-indicator\")\n });\n}","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\nCaretDownFilled.displayName = 'CaretDownFilled';\nexport default /*#__PURE__*/React.forwardRef(CaretDownFilled);","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\nFileOutlined.displayName = 'FileOutlined';\nexport default /*#__PURE__*/React.forwardRef(FileOutlined);","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\nMinusSquareOutlined.displayName = 'MinusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(MinusSquareOutlined);","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\nPlusSquareOutlined.displayName = 'PlusSquareOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusSquareOutlined);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport collapseMotion from '../_util/motion';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport renderSwitcherIcon from './utils/iconUtil';\nvar Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n virtual = _React$useContext.virtual;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$showIcon = props.showIcon,\n showIcon = _props$showIcon === void 0 ? false : _props$showIcon,\n showLine = props.showLine,\n _switcherIcon = props.switcherIcon,\n _props$blockNode = props.blockNode,\n blockNode = _props$blockNode === void 0 ? false : _props$blockNode,\n children = props.children,\n _props$checkable = props.checkable,\n checkable = _props$checkable === void 0 ? false : _props$checkable,\n _props$selectable = props.selectable,\n selectable = _props$selectable === void 0 ? true : _props$selectable,\n draggable = props.draggable,\n _props$motion = props.motion,\n motion = _props$motion === void 0 ? _extends(_extends({}, collapseMotion), {\n motionAppear: false\n }) : _props$motion;\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n var newProps = _extends(_extends({}, props), {\n checkable: checkable,\n selectable: selectable,\n showIcon: showIcon,\n motion: motion,\n blockNode: blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender: dropIndicatorRender\n });\n var draggableConfig = React.useMemo(function () {\n if (!draggable) {\n return false;\n }\n var mergedDraggable = {};\n switch (_typeof(draggable)) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = _extends({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n return /*#__PURE__*/React.createElement(RcTree, _extends({\n itemHeight: 20,\n ref: ref,\n virtual: virtual\n }, newProps, {\n prefixCls: prefixCls,\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-icon-hide\"), !showIcon), \"\".concat(prefixCls, \"-block-node\"), blockNode), \"\".concat(prefixCls, \"-unselectable\"), !selectable), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-checkbox-inner\")\n }) : checkable,\n selectable: selectable,\n switcherIcon: function switcherIcon(nodeProps) {\n return renderSwitcherIcon(prefixCls, _switcherIcon, showLine, nodeProps);\n },\n draggable: draggableConfig\n }), children);\n});\nexport default Tree;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nexport default function renderSwitcherIcon(prefixCls, switcherIcon, showLine, treeNodeProps) {\n var isLeaf = treeNodeProps.isLeaf,\n expanded = treeNodeProps.expanded,\n loading = treeNodeProps.loading;\n if (loading) {\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-loading-icon\")\n });\n }\n var showLeafIcon;\n if (showLine && _typeof(showLine) === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n var leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n var leafCls = \"\".concat(prefixCls, \"-switcher-line-custom-icon\");\n if (isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? ( /*#__PURE__*/React.createElement(FileOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n })) : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-switcher-leaf-line\")\n }));\n }\n var switcherCls = \"\".concat(prefixCls, \"-switcher-icon\");\n var switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher) {\n return switcher;\n }\n if (showLine) {\n return expanded ? ( /*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n })) : ( /*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: \"\".concat(prefixCls, \"-switcher-line-icon\")\n }));\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n}","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\nFolderOpenOutlined.displayName = 'FolderOpenOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOpenOutlined);","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\nFolderOutlined.displayName = 'FolderOutlined';\nexport default /*#__PURE__*/React.forwardRef(FolderOutlined);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar Record;\n(function (Record) {\n Record[Record[\"None\"] = 0] = \"None\";\n Record[Record[\"Start\"] = 1] = \"Start\";\n Record[Record[\"End\"] = 2] = \"End\";\n})(Record || (Record = {}));\nfunction traverseNodesKey(treeData, callback) {\n function processNode(dataNode) {\n var key = dataNode.key,\n children = dataNode.children;\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n var treeData = _ref.treeData,\n expandedKeys = _ref.expandedKeys,\n startKey = _ref.startKey,\n endKey = _ref.endKey;\n var keys = [];\n var record = Record.None;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, function (key) {\n if (record === Record.End) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === Record.None) {\n record = Record.Start;\n } else if (record === Record.Start) {\n record = Record.End;\n return false;\n }\n } else if (record === Record.Start) {\n // Append selection\n keys.push(key);\n }\n return expandedKeys.includes(key);\n });\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys) {\n var restKeys = _toConsumableArray(keys);\n var nodes = [];\n traverseNodesKey(treeData, function (key, node) {\n var index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n });\n return nodes;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n var isLeaf = props.isLeaf,\n expanded = props.expanded;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n var treeData = _ref.treeData,\n children = _ref.children;\n return treeData || convertTreeToData(children);\n}\nvar DirectoryTree = function DirectoryTree(_a, ref) {\n var defaultExpandAll = _a.defaultExpandAll,\n defaultExpandParent = _a.defaultExpandParent,\n defaultExpandedKeys = _a.defaultExpandedKeys,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n var lastSelectedKey = React.useRef();\n var cachedSelectedKeys = React.useRef();\n var getInitExpandedKeys = function getInitExpandedKeys() {\n var _convertDataToEntitie = convertDataToEntities(getTreeData(props)),\n keyEntities = _convertDataToEntitie.keyEntities;\n var initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys;\n }\n return initExpandedKeys;\n };\n var _React$useState = React.useState(props.selectedKeys || props.defaultSelectedKeys || []),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedKeys = _React$useState2[0],\n setSelectedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(function () {\n return getInitExpandedKeys();\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n expandedKeys = _React$useState4[0],\n setExpandedKeys = _React$useState4[1];\n React.useEffect(function () {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(function () {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n var onExpand = function onExpand(keys, info) {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n var onSelect = function onSelect(keys, event) {\n var _a;\n var multiple = props.multiple;\n var node = event.node,\n nativeEvent = event.nativeEvent;\n var _node$key = node.key,\n key = _node$key === void 0 ? '' : _node$key;\n var treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n var newEvent = _extends(_extends({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n var ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n var shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n var newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData: treeData,\n expandedKeys: expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n _props$showIcon = props.showIcon,\n showIcon = _props$showIcon === void 0 ? true : _props$showIcon,\n _props$expandAction = props.expandAction,\n expandAction = _props$expandAction === void 0 ? 'click' : _props$expandAction,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n var prefixCls = getPrefixCls('tree', customizePrefixCls);\n var connectClassName = classNames(\"\".concat(prefixCls, \"-directory\"), _defineProperty({}, \"\".concat(prefixCls, \"-directory-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(Tree, _extends({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nvar ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","import { TreeNode } from 'rc-tree';\nimport TreePure from './Tree';\nimport DirectoryTree from './DirectoryTree';\nvar Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","import SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport * as React from 'react';\nimport Input from '../../../input';\nfunction FilterSearch(_ref) {\n var value = _ref.value,\n onChange = _ref.onChange,\n filterSearch = _ref.filterSearch,\n tablePrefixCls = _ref.tablePrefixCls,\n locale = _ref.locale;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search\")\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-search-input\")\n }));\n}\nexport default FilterSearch;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar onKeyDown = function onKeyDown(event) {\n var keyCode = event.keyCode;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nvar FilterDropdownMenuWrapper = function FilterDropdownMenuWrapper(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onKeyDown: onKeyDown\n }, props.children);\n};\nexport default FilterDropdownMenuWrapper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport * as React from 'react';\nimport { flattenKeys } from '.';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nfunction hasSubMenu(filters) {\n return filters.some(function (_ref) {\n var children = _ref.children;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref2) {\n var filters = _ref2.filters,\n prefixCls = _ref2.prefixCls,\n filteredKeys = _ref2.filteredKeys,\n filterMultiple = _ref2.filterMultiple,\n searchValue = _ref2.searchValue,\n filterSearch = _ref2.filterSearch;\n return filters.map(function (filter, index) {\n var key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: \"\".concat(prefixCls, \"-dropdown-submenu\"),\n children: renderFilterItems({\n filters: filter.children,\n prefixCls: prefixCls,\n filteredKeys: filteredKeys,\n filterMultiple: filterMultiple,\n searchValue: searchValue,\n filterSearch: filterSearch\n })\n };\n }\n var Component = filterMultiple ? Checkbox : Radio;\n var item = {\n key: filter.value !== undefined ? key : index,\n label: ( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text)))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction wrapStringListType(keys) {\n return keys || [];\n}\nfunction FilterDropdown(props) {\n var _a;\n var tablePrefixCls = props.tablePrefixCls,\n prefixCls = props.prefixCls,\n column = props.column,\n dropdownPrefixCls = props.dropdownPrefixCls,\n columnKey = props.columnKey,\n filterMultiple = props.filterMultiple,\n _props$filterMode = props.filterMode,\n filterMode = _props$filterMode === void 0 ? 'menu' : _props$filterMode,\n _props$filterSearch = props.filterSearch,\n filterSearch = _props$filterSearch === void 0 ? false : _props$filterSearch,\n filterState = props.filterState,\n triggerFilter = props.triggerFilter,\n locale = props.locale,\n children = props.children,\n getPopupContainer = props.getPopupContainer;\n var filterDropdownOpen = column.filterDropdownOpen,\n onFilterDropdownOpenChange = column.onFilterDropdownOpenChange,\n filterDropdownVisible = column.filterDropdownVisible,\n onFilterDropdownVisibleChange = column.onFilterDropdownVisibleChange,\n filterResetToDefaultFilteredValue = column.filterResetToDefaultFilteredValue,\n defaultFilteredValue = column.defaultFilteredValue;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n var triggerVisible = function triggerVisible(newVisible) {\n setVisible(newVisible);\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n var mergedVisible;\n if (typeof filterDropdownOpen === 'boolean') {\n mergedVisible = filterDropdownOpen;\n } else {\n mergedVisible = typeof filterDropdownVisible === 'boolean' ? filterDropdownVisible : visible;\n }\n // ===================== Select Keys =====================\n var propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n var _useSyncState = useSyncState(wrapStringListType(propFilteredKeys)),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getFilteredKeysSync = _useSyncState2[0],\n setFilteredKeysSync = _useSyncState2[1];\n var onSelectKeys = function onSelectKeys(_ref3) {\n var selectedKeys = _ref3.selectedKeys;\n setFilteredKeysSync(selectedKeys);\n };\n var onCheck = function onCheck(keys, _ref4) {\n var node = _ref4.node,\n checked = _ref4.checked;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(function () {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: wrapStringListType(propFilteredKeys)\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n openKeys = _React$useState4[0],\n setOpenKeys = _React$useState4[1];\n var onOpenChange = function onOpenChange(keys) {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n var _React$useState5 = React.useState(''),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n searchValue = _React$useState6[0],\n setSearchValue = _React$useState6[1];\n var onSearch = function onSearch(e) {\n var value = e.target.value;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(function () {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n var internalTriggerFilter = function internalTriggerFilter(keys) {\n var mergedKeys = keys && keys.length ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys)) {\n return null;\n }\n triggerFilter({\n column: column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n var onConfirm = function onConfirm() {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n var onReset = function onReset() {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n },\n confirm = _ref5.confirm,\n closeDropdown = _ref5.closeDropdown;\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(function (key) {\n return String(key);\n }));\n } else {\n setFilteredKeysSync([]);\n }\n };\n var doFilter = function doFilter() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n },\n closeDropdown = _ref6.closeDropdown;\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n var onVisibleChange = function onVisibleChange(newVisible) {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefiend)\n setFilteredKeysSync(wrapStringListType(propFilteredKeys));\n }\n triggerVisible(newVisible);\n // Default will filter when closed\n if (!newVisible && !column.filterDropdown) {\n onConfirm();\n }\n };\n // ======================== Style ========================\n var dropdownMenuClass = classNames(_defineProperty({}, \"\".concat(dropdownPrefixCls, \"-menu-without-submenu\"), !hasSubMenu(column.filters || [])));\n var onCheckAll = function onCheckAll(e) {\n if (e.target.checked) {\n var allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(function (key) {\n return String(key);\n });\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n var getTreeData = function getTreeData(_ref7) {\n var filters = _ref7.filters;\n return (filters || []).map(function (filter, index) {\n var key = String(filter.value);\n var item = {\n title: filter.text,\n key: filter.value !== undefined ? key : String(index)\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n var getFilterData = function getFilterData(node) {\n var _a;\n return _extends(_extends({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(function (item) {\n return getFilterData(item);\n })) || []\n });\n };\n var dropdownContent;\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: \"\".concat(dropdownPrefixCls, \"-custom\"),\n setSelectedKeys: function setSelectedKeys(selectedKeys) {\n return onSelectKeys({\n selectedKeys: selectedKeys\n });\n },\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: function close() {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n var selectedKeys = getFilteredKeysSync() || [];\n var getFilterComponent = function getFilterComponent() {\n if ((column.filters || []).length === 0) {\n return /*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n imageStyle: {\n height: 24\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n });\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-tree\")\n }, filterMultiple ? ( /*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: \"\".concat(tablePrefixCls, \"-filter-dropdown-checkall\"),\n onChange: onCheckAll\n }, locale.filterCheckall)) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: \"\".concat(dropdownPrefixCls, \"-menu\"),\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? function (node) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: \"\".concat(dropdownPrefixCls, \"-menu\"),\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: renderFilterItems({\n filters: column.filters || [],\n filterSearch: filterSearch,\n prefixCls: prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple: filterMultiple,\n searchValue: searchValue\n })\n }));\n };\n var getResetDisabled = function getResetDisabled() {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(function (key) {\n return String(key);\n }), selectedKeys);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-dropdown-btns\")\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: function onClick() {\n return onReset();\n }\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n var menu = function menu() {\n return /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: \"\".concat(prefixCls, \"-dropdown\")\n }, dropdownContent);\n };\n var filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n var _React$useContext = React.useContext(ConfigContext),\n direction = _React$useContext.direction;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(tablePrefixCls, \"-column-title\")\n }, children), /*#__PURE__*/React.createElement(Dropdown, {\n dropdownRender: menu,\n trigger: ['click'],\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n getPopupContainer: getPopupContainer,\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight'\n }, /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(\"\".concat(prefixCls, \"-trigger\"), {\n active: filtered\n }),\n onClick: function onClick(e) {\n e.stopPropagation();\n }\n }, filterIcon)));\n}\nexport default FilterDropdown;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n var ref = React.useRef(initialValue);\n var forceUpdate = useForceUpdate();\n return [function () {\n return ref.current;\n }, function (newValue) {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown from './FilterDropdown';\nfunction collectFilterStates(columns, init, pos) {\n var filterStates = [];\n (columns || []).forEach(function (column, index) {\n var _a;\n var columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n var filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n}\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, triggerFilter, getPopupContainer, locale, pos) {\n return columns.map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var _column$filterMultipl = column.filterMultiple,\n filterMultiple = _column$filterMultipl === void 0 ? true : _column$filterMultipl,\n filterMode = column.filterMode,\n filterSearch = column.filterSearch;\n var newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n var columnKey = getColumnKey(newColumn, columnPos);\n var filterState = filterStates.find(function (_ref) {\n var key = _ref.key;\n return columnKey === key;\n });\n newColumn = _extends(_extends({}, newColumn), {\n title: function title(renderProps) {\n return /*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: \"\".concat(prefixCls, \"-filter\"),\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer\n }, renderColumnTitle(column.title, renderProps));\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, triggerFilter, getPopupContainer, locale, columnPos)\n });\n }\n return newColumn;\n });\n}\nexport function flattenKeys(filters) {\n var keys = [];\n (filters || []).forEach(function (_ref2) {\n var value = _ref2.value,\n children = _ref2.children;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction generateFilterInfo(filterStates) {\n var currentFilters = {};\n filterStates.forEach(function (_ref3) {\n var key = _ref3.key,\n filteredKeys = _ref3.filteredKeys,\n column = _ref3.column;\n var keyAsString = key;\n var filters = column.filters,\n filterDropdown = column.filterDropdown;\n if (filterDropdown) {\n currentFilters[keyAsString] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n var keys = flattenKeys(filters);\n currentFilters[keyAsString] = keys.filter(function (originKey) {\n return filteredKeys.includes(String(originKey));\n });\n } else {\n currentFilters[keyAsString] = null;\n }\n });\n return currentFilters;\n}\nexport function getFilterData(data, filterStates) {\n return filterStates.reduce(function (currentData, filterState) {\n var _filterState$column = filterState.column,\n onFilter = _filterState$column.onFilter,\n filters = _filterState$column.filters,\n filteredKeys = filterState.filteredKeys;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData.filter(function (record) {\n return filteredKeys.some(function (key) {\n var keys = flattenKeys(filters);\n var keyIndex = keys.findIndex(function (k) {\n return String(k) === String(key);\n });\n var realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n return onFilter(realKey, record);\n });\n });\n }\n return currentData;\n }, data);\n}\nfunction useFilter(_ref4) {\n var prefixCls = _ref4.prefixCls,\n dropdownPrefixCls = _ref4.dropdownPrefixCls,\n mergedColumns = _ref4.mergedColumns,\n onFilterChange = _ref4.onFilterChange,\n getPopupContainer = _ref4.getPopupContainer,\n tableLocale = _ref4.locale;\n var _React$useState = React.useState(function () {\n return collectFilterStates(mergedColumns, true);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n filterStates = _React$useState2[0],\n setFilterStates = _React$useState2[1];\n var mergedFilterStates = React.useMemo(function () {\n var collectedStates = collectFilterStates(mergedColumns, false);\n var filteredKeysIsAllNotControlled = true;\n var filteredKeysIsAllControlled = true;\n collectedStates.forEach(function (_ref5) {\n var filteredKeys = _ref5.filteredKeys;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n return filterStates;\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'Table', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n var filters = React.useMemo(function () {\n return generateFilterInfo(mergedFilterStates);\n }, [mergedFilterStates]);\n var triggerFilter = function triggerFilter(filterState) {\n var newFilterStates = mergedFilterStates.filter(function (_ref6) {\n var key = _ref6.key;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n var transformColumns = function transformColumns(innerColumns) {\n return injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, triggerFilter, getPopupContainer, tableLocale);\n };\n return [transformColumns, mergedFilterStates, filters];\n}\nexport default useFilter;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useState } from 'react';\nexport var DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(pagination, mergedPagination) {\n var param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(function (pageProp) {\n var value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nfunction extendsObject() {\n var result = {};\n for (var _len = arguments.length, list = new Array(_len), _key = 0; _key < _len; _key++) {\n list[_key] = arguments[_key];\n }\n list.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n result[key] = val;\n }\n });\n }\n });\n return result;\n}\nexport default function usePagination(total, pagination, onChange) {\n var _a = pagination && _typeof(pagination) === 'object' ? pagination : {},\n _a$total = _a.total,\n paginationTotal = _a$total === void 0 ? 0 : _a$total,\n paginationObj = __rest(_a, [\"total\"]);\n var _useState = useState(function () {\n return {\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerPagination = _useState2[0],\n setInnerPagination = _useState2[1];\n // ============ Basic Pagination Config ============\n var mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n var maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n var refreshPagination = function refreshPagination(current, pageSize) {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n var onInternalChange = function onInternalChange(current, pageSize) {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, function () {}];\n }\n return [_extends(_extends({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useCallback, useMemo, useState } from 'react';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\nimport warning from '../../_util/warning';\n// TODO: warning if use ajax!!!\nexport var SELECTION_COLUMN = {};\nexport var SELECTION_ALL = 'SELECT_ALL';\nexport var SELECTION_INVERT = 'SELECT_INVERT';\nexport var SELECTION_NONE = 'SELECT_NONE';\nvar EMPTY_LIST = [];\nfunction flattenData(data, childrenColumnName) {\n var list = [];\n (data || []).forEach(function (record) {\n list.push(record);\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(record[childrenColumnName], childrenColumnName)));\n }\n });\n return list;\n}\nexport default function useSelection(rowSelection, config) {\n var _ref = rowSelection || {},\n preserveSelectedRowKeys = _ref.preserveSelectedRowKeys,\n selectedRowKeys = _ref.selectedRowKeys,\n defaultSelectedRowKeys = _ref.defaultSelectedRowKeys,\n getCheckboxProps = _ref.getCheckboxProps,\n onSelectionChange = _ref.onChange,\n onSelect = _ref.onSelect,\n onSelectAll = _ref.onSelectAll,\n onSelectInvert = _ref.onSelectInvert,\n onSelectNone = _ref.onSelectNone,\n onSelectMultiple = _ref.onSelectMultiple,\n selectionColWidth = _ref.columnWidth,\n selectionType = _ref.type,\n selections = _ref.selections,\n fixed = _ref.fixed,\n customizeRenderCell = _ref.renderCell,\n hideSelectAll = _ref.hideSelectAll,\n _ref$checkStrictly = _ref.checkStrictly,\n checkStrictly = _ref$checkStrictly === void 0 ? true : _ref$checkStrictly;\n var prefixCls = config.prefixCls,\n data = config.data,\n pageData = config.pageData,\n getRecordByKey = config.getRecordByKey,\n getRowKey = config.getRowKey,\n expandType = config.expandType,\n childrenColumnName = config.childrenColumnName,\n tableLocale = config.locale,\n getPopupContainer = config.getPopupContainer;\n // ========================= Keys =========================\n var _useMergedState = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedSelectedKeys = _useMergedState2[0],\n setMergedSelectedKeys = _useMergedState2[1];\n // ======================== Caches ========================\n var preserveRecordsRef = React.useRef(new Map());\n var updatePreserveRecordsCache = useCallback(function (keys) {\n if (preserveSelectedRowKeys) {\n var newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(function () {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n var _useMemo = useMemo(function () {\n return checkStrictly ? {\n keyEntities: null\n } : convertDataToEntities(data, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName]),\n keyEntities = _useMemo.keyEntities;\n // Get flatten data\n var flattedData = useMemo(function () {\n return flattenData(pageData, childrenColumnName);\n }, [pageData, childrenColumnName]);\n // Get all checkbox props\n var checkboxPropsMap = useMemo(function () {\n var map = new Map();\n flattedData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'Table', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n var isCheckboxDisabled = useCallback(function (r) {\n var _a;\n return !!((_a = checkboxPropsMap.get(getRowKey(r))) === null || _a === void 0 ? void 0 : _a.disabled);\n }, [checkboxPropsMap, getRowKey]);\n var _useMemo2 = useMemo(function () {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n var _conductCheck = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled),\n checkedKeys = _conductCheck.checkedKeys,\n halfCheckedKeys = _conductCheck.halfCheckedKeys;\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]),\n _useMemo3 = _slicedToArray(_useMemo2, 2),\n derivedSelectedKeys = _useMemo3[0],\n derivedHalfSelectedKeys = _useMemo3[1];\n var derivedSelectedKeySet = useMemo(function () {\n var keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n var derivedHalfSelectedKeySet = useMemo(function () {\n return selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys);\n }, [derivedHalfSelectedKeys, selectionType]);\n // Save last selected key to enable range selection\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n lastSelectedKey = _useState2[0],\n setLastSelectedKey = _useState2[1];\n // Reset if rowSelection reset\n React.useEffect(function () {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n var setSelectedKeys = useCallback(function (keys, method) {\n var availableKeys;\n var records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(function (key) {\n return preserveRecordsRef.current.get(key);\n });\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(function (key) {\n var record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n var triggerSingleSelection = useCallback(function (key, selected, keys, event) {\n if (onSelect) {\n var rows = keys.map(function (k) {\n return getRecordByKey(k);\n });\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n var mergedSelections = useMemo(function () {\n if (!selections || hideSelectAll) {\n return null;\n }\n var selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(function (selection) {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect: function onSelect() {\n setSelectedKeys(data.map(function (record, index) {\n return getRowKey(record, index);\n }).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect: function onSelect() {\n var keySet = new Set(derivedSelectedKeySet);\n pageData.forEach(function (record, index) {\n var key = getRowKey(record, index);\n var checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet[\"delete\"](key);\n } else {\n keySet.add(key);\n }\n }\n });\n var keys = Array.from(keySet);\n if (onSelectInvert) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`onSelectInvert` will be removed in future. Please use `onChange` instead.') : void 0;\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect: function onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(function (key) {\n var checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(function (selection) {\n return _extends(_extends({}, selection), {\n onSelect: function onSelect() {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n setLastSelectedKey(null);\n }\n });\n });\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n var transformColumns = useCallback(function (columns) {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'Table', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(function (col) {\n return col !== SELECTION_COLUMN;\n });\n }\n // >>>>>>>>>>> Support selection\n var cloneColumns = _toConsumableArray(columns);\n var keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n var recordKeys = flattedData.map(getRowKey).filter(function (key) {\n return !checkboxPropsMap.get(key).disabled;\n });\n var checkedCurrentAll = recordKeys.every(function (key) {\n return keySet.has(key);\n });\n var checkedCurrentSome = recordKeys.some(function (key) {\n return keySet.has(key);\n });\n var onSelectAllChange = function onSelectAllChange() {\n var changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(function (key) {\n keySet[\"delete\"](key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(function (key) {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n var keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(function (k) {\n return getRecordByKey(k);\n }), changeKeys.map(function (k) {\n return getRecordByKey(k);\n }));\n setSelectedKeys(keys, 'all');\n setLastSelectedKey(null);\n };\n // ===================== Render =====================\n // Title Cell\n var title;\n if (selectionType !== 'radio') {\n var customizeSelections;\n if (mergedSelections) {\n var menu = {\n getPopupContainer: getPopupContainer,\n items: mergedSelections.map(function (selection, index) {\n var key = selection.key,\n text = selection.text,\n onSelectionClick = selection.onSelect;\n return {\n key: key || index,\n onClick: function onClick() {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection-extra\")\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n var allDisabledData = flattedData.map(function (record, index) {\n var key = getRowKey(record, index);\n var checkboxProps = checkboxPropsMap.get(key) || {};\n return _extends({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(function (_ref2) {\n var disabled = _ref2.disabled;\n return disabled;\n });\n var allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n var allDisabledAndChecked = allDisabled && allDisabledData.every(function (_ref3) {\n var checked = _ref3.checked;\n return checked;\n });\n var allDisabledSomeChecked = allDisabled && allDisabledData.some(function (_ref4) {\n var checked = _ref4.checked;\n return checked;\n });\n title = !hideSelectAll && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-selection\")\n }, /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n }), customizeSelections));\n }\n // Body Cell\n var renderCell;\n if (selectionType === 'radio') {\n renderCell = function renderCell(_, record, index) {\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n return {\n node: ( /*#__PURE__*/React.createElement(Radio, _extends({}, checkboxPropsMap.get(key), {\n checked: checked,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(event) {\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n }\n }))),\n checked: checked\n };\n };\n } else {\n renderCell = function renderCell(_, record, index) {\n var _a;\n var key = getRowKey(record, index);\n var checked = keySet.has(key);\n var indeterminate = derivedHalfSelectedKeySet.has(key);\n var checkboxProps = checkboxPropsMap.get(key);\n var mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'Table', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: ( /*#__PURE__*/React.createElement(Checkbox, _extends({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n onChange: function onChange(_ref5) {\n var nativeEvent = _ref5.nativeEvent;\n var shiftKey = nativeEvent.shiftKey;\n var startIndex = -1;\n var endIndex = -1;\n // Get range of this\n if (shiftKey && checkStrictly) {\n var pointKeys = new Set([lastSelectedKey, key]);\n recordKeys.some(function (recordKey, recordIndex) {\n if (pointKeys.has(recordKey)) {\n if (startIndex === -1) {\n startIndex = recordIndex;\n } else {\n endIndex = recordIndex;\n return true;\n }\n }\n return false;\n });\n }\n if (endIndex !== -1 && startIndex !== endIndex && checkStrictly) {\n // Batch update selections\n var rangeKeys = recordKeys.slice(startIndex, endIndex + 1);\n var changedKeys = [];\n if (checked) {\n rangeKeys.forEach(function (recordKey) {\n if (keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet[\"delete\"](recordKey);\n }\n });\n } else {\n rangeKeys.forEach(function (recordKey) {\n if (!keySet.has(recordKey)) {\n changedKeys.push(recordKey);\n keySet.add(recordKey);\n }\n });\n }\n var keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }), changedKeys.map(function (recordKey) {\n return getRecordByKey(recordKey);\n }));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n var originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n var checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n var result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n var _checkedKeys = result.checkedKeys,\n halfCheckedKeys = result.halfCheckedKeys;\n var nextCheckedKeys = _checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n var tempKeySet = new Set(_checkedKeys);\n tempKeySet[\"delete\"](key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys: halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n setLastSelectedKey(null);\n } else {\n setLastSelectedKey(key);\n }\n }\n }))),\n checked: checked\n };\n };\n }\n var renderSelectionCell = function renderSelectionCell(_, record, index) {\n var _renderCell = renderCell(_, record, index),\n node = _renderCell.node,\n checked = _renderCell.checked;\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(function (col) {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n var _cloneColumns = cloneColumns,\n _cloneColumns2 = _toArray(_cloneColumns),\n expandColumn = _cloneColumns2[0],\n restColumns = _cloneColumns2.slice(1);\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n var selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(function (col) {\n return col === SELECTION_COLUMN;\n }).length <= 1, 'Table', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== SELECTION_COLUMN || index === selectionColumnIndex;\n });\n // Fixed column logic\n var prevCol = cloneColumns[selectionColumnIndex - 1];\n var nextCol = cloneColumns[selectionColumnIndex + 1];\n var mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n // Replace with real selection column\n var selectionColumn = _defineProperty({\n fixed: mergedFixed,\n width: selectionColWidth,\n className: \"\".concat(prefixCls, \"-selection-column\"),\n title: rowSelection.columnTitle || title,\n render: renderSelectionCell\n }, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-selection-col\")\n });\n return cloneColumns.map(function (col) {\n return col === SELECTION_COLUMN ? selectionColumn : col;\n });\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, lastSelectedKey, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n}","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretDownOutlined = function CaretDownOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretDownOutlinedSvg\n }));\n};\nCaretDownOutlined.displayName = 'CaretDownOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretDownOutlined);","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\nCaretUpOutlined.displayName = 'CaretUpOutlined';\nexport default /*#__PURE__*/React.forwardRef(CaretUpOutlined);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nvar ASCEND = 'ascend';\nvar DESCEND = 'descend';\nfunction getMultiplePriority(column) {\n if (_typeof(column.sorter) === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n}\nfunction getSortFunction(sorter) {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && _typeof(sorter) === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n}\nfunction nextSortDirection(sortDirections, current) {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n}\nfunction collectSortStates(columns, init, pos) {\n var sortStates = [];\n function pushState(column, columnPos) {\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n }\n (columns || []).forEach(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column: column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n}\nfunction injectSorter(prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) {\n return (columns || []).map(function (column, index) {\n var columnPos = getColumnPos(index, pos);\n var newColumn = column;\n if (newColumn.sorter) {\n var sortDirections = newColumn.sortDirections || defaultSortDirections;\n var showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n var columnKey = getColumnKey(newColumn, columnPos);\n var sorterState = sorterStates.find(function (_ref) {\n var key = _ref.key;\n return key === columnKey;\n });\n var sorterOrder = sorterState ? sorterState.sortOrder : null;\n var nextSortOrder = nextSortDirection(sortDirections, sorterOrder);\n var upNode = sortDirections.includes(ASCEND) && ( /*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-up\"), {\n active: sorterOrder === ASCEND\n }),\n role: \"presentation\"\n }));\n var downNode = sortDirections.includes(DESCEND) && ( /*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter-down\"), {\n active: sorterOrder === DESCEND\n }),\n role: \"presentation\"\n }));\n var _ref2 = tableLocale || {},\n cancelSort = _ref2.cancelSort,\n triggerAsc = _ref2.triggerAsc,\n triggerDesc = _ref2.triggerDesc;\n var sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n var tooltipProps = _typeof(showSorterTooltip) === 'object' ? showSorterTooltip : {\n title: sortTip\n };\n newColumn = _extends(_extends({}, newColumn), {\n className: classNames(newColumn.className, _defineProperty({}, \"\".concat(prefixCls, \"-column-sort\"), sorterOrder)),\n title: function title(renderProps) {\n var renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-column-sorters\")\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-title\")\n }, renderColumnTitle(column.title, renderProps)), /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(prefixCls, \"-column-sorter\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-sorter-full\"), !!(upNode && downNode)))\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-column-sorter-inner\")\n }, upNode, downNode)));\n return showSorterTooltip ? ( /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps), renderSortTitle)) : renderSortTitle;\n },\n onHeaderCell: function onHeaderCell(col) {\n var cell = column.onHeaderCell && column.onHeaderCell(col) || {};\n var originOnClick = cell.onClick;\n var originOKeyDown = cell.onKeyDown;\n cell.onClick = function (event) {\n triggerSorter({\n column: column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = function (event) {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column: column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n var renderTitle = safeColumnTitle(column.title, {});\n var displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sorterOrder) {\n cell['aria-sort'] = sorterOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, \"\".concat(prefixCls, \"-column-has-sorters\"));\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = _extends(_extends({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n}\nfunction stateToInfo(sorterStates) {\n var column = sorterStates.column,\n sortOrder = sorterStates.sortOrder;\n return {\n column: column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n}\nfunction generateSorterInfo(sorterStates) {\n var list = sorterStates.filter(function (_ref3) {\n var sortOrder = _ref3.sortOrder;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (list.length === 0 && sorterStates.length) {\n return _extends(_extends({}, stateToInfo(sorterStates[sorterStates.length - 1])), {\n column: undefined\n });\n }\n if (list.length <= 1) {\n return list[0] || {};\n }\n return list;\n}\nexport function getSortData(data, sortStates, childrenColumnName) {\n var innerSorterStates = sortStates.slice().sort(function (a, b) {\n return b.multiplePriority - a.multiplePriority;\n });\n var cloneData = data.slice();\n var runningSorters = innerSorterStates.filter(function (_ref4) {\n var sorter = _ref4.column.sorter,\n sortOrder = _ref4.sortOrder;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort(function (record1, record2) {\n for (var i = 0; i < runningSorters.length; i += 1) {\n var sorterState = runningSorters[i];\n var sorter = sorterState.column.sorter,\n sortOrder = sorterState.sortOrder;\n var compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n var compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(function (record) {\n var subRecords = record[childrenColumnName];\n if (subRecords) {\n return _extends(_extends({}, record), _defineProperty({}, childrenColumnName, getSortData(subRecords, sortStates, childrenColumnName)));\n }\n return record;\n });\n}\nexport default function useFilterSorter(_ref5) {\n var prefixCls = _ref5.prefixCls,\n mergedColumns = _ref5.mergedColumns,\n onSorterChange = _ref5.onSorterChange,\n sortDirections = _ref5.sortDirections,\n tableLocale = _ref5.tableLocale,\n showSorterTooltip = _ref5.showSorterTooltip;\n var _React$useState = React.useState(collectSortStates(mergedColumns, true)),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sortStates = _React$useState2[0],\n setSortStates = _React$useState2[1];\n var mergedSorterStates = React.useMemo(function () {\n var validate = true;\n var collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n return sortStates;\n }\n var validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(_extends(_extends({}, state), {\n sortOrder: null\n }));\n }\n }\n var multipleMode = null;\n collectedStates.forEach(function (state) {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n var columnTitleSorterProps = React.useMemo(function () {\n var sortColumns = mergedSorterStates.map(function (_ref6) {\n var column = _ref6.column,\n sortOrder = _ref6.sortOrder;\n return {\n column: column,\n order: sortOrder\n };\n });\n return {\n sortColumns: sortColumns,\n // Legacy\n sortColumn: sortColumns[0] && sortColumns[0].column,\n sortOrder: sortColumns[0] && sortColumns[0].order\n };\n }, [mergedSorterStates]);\n function triggerSorter(sortState) {\n var newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(function (_ref7) {\n var key = _ref7.key;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n }\n var transformColumns = function transformColumns(innerColumns) {\n return injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n };\n var getSorters = function getSorters() {\n return generateSorterInfo(mergedSorterStates);\n };\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { renderColumnTitle } from '../util';\nfunction fillTitle(columns, columnTitleProps) {\n return columns.map(function (column) {\n var cloneColumn = _extends({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n}\nexport default function useTitleColumns(columnTitleProps) {\n var filledColumns = React.useCallback(function (columns) {\n return fillTitle(columns, columnTitleProps);\n }, [columnTitleProps]);\n return [filledColumns];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport RcTable, { Summary } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport { INTERNAL_HOOKS } from \"rc-table/es/Table\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider/context';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport SizeContext from '../config-provider/SizeContext';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport scrollTo from '../_util/scrollTo';\nimport warning from '../_util/warning';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport renderExpandIcon from './ExpandIcon';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection, { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nvar EMPTY_LIST = [];\nfunction InternalTable(props, ref) {\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n customizeSize = props.size,\n bordered = props.bordered,\n customizeDropdownPrefixCls = props.dropdownPrefixCls,\n dataSource = props.dataSource,\n pagination = props.pagination,\n rowSelection = props.rowSelection,\n _props$rowKey = props.rowKey,\n rowKey = _props$rowKey === void 0 ? 'key' : _props$rowKey,\n rowClassName = props.rowClassName,\n columns = props.columns,\n children = props.children,\n legacyChildrenColumnName = props.childrenColumnName,\n onChange = props.onChange,\n getPopupContainer = props.getPopupContainer,\n loading = props.loading,\n expandIcon = props.expandIcon,\n expandable = props.expandable,\n expandedRowRender = props.expandedRowRender,\n expandIconColumnIndex = props.expandIconColumnIndex,\n indentSize = props.indentSize,\n scroll = props.scroll,\n sortDirections = props.sortDirections,\n locale = props.locale,\n _props$showSorterTool = props.showSorterTooltip,\n showSorterTooltip = _props$showSorterTool === void 0 ? true : _props$showSorterTool;\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'Table', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n [['filterDropdownVisible', 'filterDropdownOpen'], ['onFilterDropdownVisibleChange', 'onFilterDropdownOpenChange']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n deprecatedName = _ref2[0],\n newName = _ref2[1];\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Table', \"`\".concat(deprecatedName, \"` is deprecated which will be removed in next major version.Please use `\").concat(newName, \"` instead. \")) : void 0;\n });\n var baseColumns = React.useMemo(function () {\n return columns || convertChildrenToColumns(children);\n }, [columns, children]);\n var needResponsive = React.useMemo(function () {\n return baseColumns.some(function (col) {\n return col.responsive;\n });\n }, [baseColumns]);\n var screens = useBreakpoint(needResponsive);\n var mergedColumns = React.useMemo(function () {\n var matched = new Set(Object.keys(screens).filter(function (m) {\n return screens[m];\n }));\n return baseColumns.filter(function (c) {\n return !c.responsive || c.responsive.some(function (r) {\n return matched.has(r);\n });\n });\n }, [baseColumns, screens]);\n var tableProps = omit(props, ['className', 'style', 'columns']);\n var size = React.useContext(SizeContext);\n var _React$useContext = React.useContext(ConfigContext),\n _React$useContext$loc = _React$useContext.locale,\n contextLocale = _React$useContext$loc === void 0 ? defaultLocale : _React$useContext$loc,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n var mergedSize = customizeSize || size;\n var tableLocale = _extends(_extends({}, contextLocale.Table), locale);\n var rawData = dataSource || EMPTY_LIST;\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n var prefixCls = getPrefixCls('table', customizePrefixCls);\n var dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n var mergedExpandable = _extends({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex: expandIconColumnIndex\n }, expandable);\n var _mergedExpandable$chi = mergedExpandable.childrenColumnName,\n childrenColumnName = _mergedExpandable$chi === void 0 ? 'children' : _mergedExpandable$chi;\n var expandType = React.useMemo(function () {\n if (rawData.some(function (item) {\n return item === null || item === void 0 ? void 0 : item[childrenColumnName];\n })) {\n return 'nest';\n }\n if (expandedRowRender || expandable && expandable.expandedRowRender) {\n return 'row';\n }\n return null;\n }, [rawData]);\n var internalRefs = {\n body: React.useRef()\n };\n // ============================ RowKey ============================\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return function (record) {\n return record === null || record === void 0 ? void 0 : record[rowKey];\n };\n }, [rowKey]);\n var _useLazyKVMap = useLazyKVMap(rawData, childrenColumnName, getRowKey),\n _useLazyKVMap2 = _slicedToArray(_useLazyKVMap, 1),\n getRecordByKey = _useLazyKVMap2[0];\n // ============================ Events =============================\n var changeEventInfo = {};\n var triggerOnChange = function triggerOnChange(info, action) {\n var reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var changeInfo = _extends(_extends({}, changeEventInfo), info);\n if (reset) {\n changeEventInfo.resetPagination();\n // Reset event param\n if (changeInfo.pagination.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination && pagination.onChange) {\n pagination.onChange(1, changeInfo.pagination.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: function getContainer() {\n return internalRefs.body.current;\n }\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates),\n action: action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n var onSorterChange = function onSorterChange(sorter, sorterStates) {\n triggerOnChange({\n sorter: sorter,\n sorterStates: sorterStates\n }, 'sort', false);\n };\n var _useSorter = useSorter({\n prefixCls: prefixCls,\n mergedColumns: mergedColumns,\n onSorterChange: onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale: tableLocale,\n showSorterTooltip: showSorterTooltip\n }),\n _useSorter2 = _slicedToArray(_useSorter, 4),\n transformSorterColumns = _useSorter2[0],\n sortStates = _useSorter2[1],\n sorterTitleProps = _useSorter2[2],\n getSorters = _useSorter2[3];\n var sortedData = React.useMemo(function () {\n return getSortData(rawData, sortStates, childrenColumnName);\n }, [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n var onFilterChange = function onFilterChange(filters, filterStates) {\n triggerOnChange({\n filters: filters,\n filterStates: filterStates\n }, 'filter', true);\n };\n var _useFilter = useFilter({\n prefixCls: prefixCls,\n locale: tableLocale,\n dropdownPrefixCls: dropdownPrefixCls,\n mergedColumns: mergedColumns,\n onFilterChange: onFilterChange,\n getPopupContainer: getPopupContainer\n }),\n _useFilter2 = _slicedToArray(_useFilter, 3),\n transformFilterColumns = _useFilter2[0],\n filterStates = _useFilter2[1],\n filters = _useFilter2[2];\n var mergedData = getFilterData(sortedData, filterStates);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n var columnTitleProps = React.useMemo(function () {\n var mergedFilters = {};\n Object.keys(filters).forEach(function (filterKey) {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return _extends(_extends({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n var _useTitleColumns = useTitleColumns(columnTitleProps),\n _useTitleColumns2 = _slicedToArray(_useTitleColumns, 1),\n transformTitleColumns = _useTitleColumns2[0];\n // ========================== Pagination ==========================\n var onPaginationChange = function onPaginationChange(current, pageSize) {\n triggerOnChange({\n pagination: _extends(_extends({}, changeEventInfo.pagination), {\n current: current,\n pageSize: pageSize\n })\n }, 'paginate');\n };\n var _usePagination = usePagination(mergedData.length, pagination, onPaginationChange),\n _usePagination2 = _slicedToArray(_usePagination, 2),\n mergedPagination = _usePagination2[0],\n resetPagination = _usePagination2[1];\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(pagination, mergedPagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n var pageData = React.useMemo(function () {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n var _mergedPagination$cur = mergedPagination.current,\n current = _mergedPagination$cur === void 0 ? 1 : _mergedPagination$cur,\n total = mergedPagination.total,\n _mergedPagination$pag = mergedPagination.pageSize,\n pageSize = _mergedPagination$pag === void 0 ? DEFAULT_PAGE_SIZE : _mergedPagination$pag;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'Table', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Table', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination && mergedPagination.current, mergedPagination && mergedPagination.pageSize, mergedPagination && mergedPagination.total]);\n // ========================== Selections ==========================\n var _useSelection = useSelection(rowSelection, {\n prefixCls: prefixCls,\n data: mergedData,\n pageData: pageData,\n getRowKey: getRowKey,\n getRecordByKey: getRecordByKey,\n expandType: expandType,\n childrenColumnName: childrenColumnName,\n locale: tableLocale,\n getPopupContainer: getPopupContainer\n }),\n _useSelection2 = _slicedToArray(_useSelection, 2),\n transformSelectionColumns = _useSelection2[0],\n selectedKeySet = _useSelection2[1];\n var internalRowClassName = function internalRowClassName(record, index, indent) {\n var mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames(_defineProperty({}, \"\".concat(prefixCls, \"-row-selected\"), selectedKeySet.has(getRowKey(record, index))), mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n var transformColumns = React.useCallback(function (innerColumns) {\n return transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns))));\n }, [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n var topPaginationNode;\n var bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n var paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n var renderPagination = function renderPagination(position) {\n return /*#__PURE__*/React.createElement(Pagination, _extends({}, mergedPagination, {\n className: classNames(\"\".concat(prefixCls, \"-pagination \").concat(prefixCls, \"-pagination-\").concat(position), mergedPagination.className),\n size: paginationSize\n }));\n };\n var defaultPosition = direction === 'rtl' ? 'left' : 'right';\n var position = mergedPagination.position;\n if (position !== null && Array.isArray(position)) {\n var topPos = position.find(function (p) {\n return p.includes('top');\n });\n var bottomPos = position.find(function (p) {\n return p.includes('bottom');\n });\n var isDisable = position.every(function (p) {\n return \"\".concat(p) === 'none';\n });\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n var spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (_typeof(loading) === 'object') {\n spinProps = _extends({\n spinning: true\n }, loading);\n }\n var wrapperClassNames = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, \"\".concat(prefixCls, \"-wrapper-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n className: wrapperClassNames,\n style: style\n }, /*#__PURE__*/React.createElement(Spin, _extends({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(RcTable, _extends({}, tableProps, {\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-middle\"), mergedSize === 'middle'), \"\".concat(prefixCls, \"-small\"), mergedSize === 'small'), \"\".concat(prefixCls, \"-bordered\"), bordered), \"\".concat(prefixCls, \"-empty\"), rawData.length === 0)),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: locale && locale.emptyText || (renderEmpty || defaultRenderEmpty)('Table'),\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns\n })), bottomPaginationNode));\n}\nvar ForwardTable = /*#__PURE__*/React.forwardRef(InternalTable);\nvar Table = ForwardTable;\nTable.SELECTION_COLUMN = SELECTION_COLUMN;\nTable.EXPAND_COLUMN = RcTable.EXPAND_COLUMN;\nTable.SELECTION_ALL = SELECTION_ALL;\nTable.SELECTION_INVERT = SELECTION_INVERT;\nTable.SELECTION_NONE = SELECTION_NONE;\nTable.Column = Column;\nTable.ColumnGroup = ColumnGroup;\nTable.Summary = Summary;\nexport default Table;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function useLazyKVMap(data, childrenColumnName, getRowKey) {\n var mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n var kvMap = new Map();\n /* eslint-disable no-inner-declarations */\n function dig(records) {\n records.forEach(function (record, index) {\n var rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && _typeof(record) === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n /* eslint-enable */\n dig(data);\n mapCacheRef.current = {\n data: data,\n childrenColumnName: childrenColumnName,\n kvMap: kvMap,\n getRowKey: getRowKey\n };\n }\n return mapCacheRef.current.kvMap.get(key);\n }\n return [getRecordByKey];\n}","import Table from './Table';\nexport default Table;","export const timeToString = (item: bigint) => {\n let timeObj = new Date(Number(item) / 1e6);\n let year = '' + timeObj.getFullYear();\n let month = '' + (timeObj.getMonth() + 1);\n let date = '' + timeObj.getDate();\n let time = timeObj.toTimeString().slice(0, 8);\n return year + '-' + month.padStart(2, '0') + '-' + date.padStart(2, '0') + ' ' + time;\n};\n","import { useEffect, useState } from 'react';\nimport { Button, Card, message, Popconfirm, Space, Table, Tag } from 'antd';\nimport { SortOrder } from 'antd/lib/table/interface';\nimport { connect } from 'dva';\nimport { timeToString } from '../../utils/icTime';\nimport './index.less';\n\nconst Announcement = (props: any) => {\n const { history } = props;\n const { applyActor } = props.use_agent;\n let [list, setList] = useState([]);\n let [loading, setLoading] = useState(false);\n\n const columns = [\n {\n title: '#',\n dataIndex: 'id',\n key: 'id',\n width: '80px',\n },\n {\n title: 'Title',\n dataIndex: 'title',\n key: 'title',\n width: '200px',\n ellipsis: true,\n },\n {\n title: 'Status',\n key: 'title',\n onFilter: (value: any, _: any) => {\n let now = new Date().getTime() * 1e6;\n if (value === 'toRelease') {\n return now < _.releaseTime;\n }\n if (value === 'releasing') {\n return _.releaseTime <= now && now < _.endTime;\n }\n if (value === 'expired') {\n return _.endTime <= now;\n }\n return false;\n },\n filters: [\n {\n text: 'To Be Released',\n value: 'toRelease',\n },\n {\n text: 'Releasing',\n value: 'releasing',\n },\n {\n text: 'Expired',\n value: 'expired',\n },\n ],\n render: (_: any) => {\n let now = new Date().getTime() * 1e6;\n if (now < _.releaseTime) {\n return To Be Released;\n } else if (_.releaseTime <= now && now < _.endTime) {\n return Releasing;\n } else if (_.endTime <= now) {\n return Expired;\n }\n },\n },\n {\n title: 'Create Time',\n dataIndex: 'createTime',\n key: 'createTime',\n sorter: (a: any, b: any) => a.createTime - b.createTime,\n sortDirections: ['ascend', 'descend', 'ascend'] as SortOrder[],\n defaultSortOrder: 'descend' as SortOrder,\n render: (time: bigint) => {\n return timeToString(time).slice(0, -3);\n },\n },\n {\n title: 'Release Time',\n dataIndex: 'releaseTime',\n key: 'releaseTime',\n sorter: (a: any, b: any) => a.releaseTime - b.releaseTime,\n sortDirections: ['ascend', 'descend', 'ascend'] as SortOrder[],\n render: (time: bigint, rec: any) => {\n return timeToString(time).slice(0, -3);\n },\n },\n {\n title: 'End Time',\n dataIndex: 'endTime',\n key: 'endTime',\n sorter: (a: any, b: any) => a.endTime - b.endTime,\n sortDirections: ['ascend', 'descend', 'ascend'] as SortOrder[],\n render: (time: bigint) => {\n return timeToString(time).slice(0, -3);\n },\n },\n {\n title: 'Action',\n key: 'action',\n render: (_: any, announcement: any) => {\n return (\n \n {\n deletConfirm(_.id);\n }}\n okText=\"Yes\"\n cancelText=\"No\"\n >\n \n \n \n \n );\n },\n },\n ];\n\n const addAnnouncement = () => {\n history.push('/home/edit_announcement');\n };\n\n const editAnnouncement = (announcement: any) => {\n history.push({\n pathname: '/home/edit_announcement',\n state: announcement,\n });\n };\n\n const deletConfirm = async (id: number) => {\n if (applyActor) {\n message.loading('deleting');\n await applyActor.delAnnouncement(id);\n getAnnouncements();\n message.destroy();\n message.success('success~');\n }\n };\n\n const getAnnouncements = async () => {\n setLoading(true);\n let _list = await applyActor.getAnnouncementsAll();\n _list = _list.map((item: any) => {\n item.id = Number(item.id);\n item.releaseTime = Number(item.releaseTime);\n item.endTime = Number(item.endTime);\n item.createTime = Number(item.createTime);\n return item;\n });\n setList(_list);\n setLoading(false);\n };\n\n useEffect(() => {\n getAnnouncements();\n }, []);\n\n return (\n \n
\n Announcement\n {\n addAnnouncement();\n }}\n >\n Add\n \n
\n record.id}\n loading={loading}\n columns={columns}\n dataSource={list}\n />\n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(Announcement);\n","import { createContext } from 'react';\nvar RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport { tuple } from '../_util/type';\nimport RowContext from './RowContext';\nvar RowAligns = tuple('top', 'middle', 'bottom', 'stretch');\nvar RowJustify = tuple('start', 'end', 'center', 'space-around', 'space-between', 'space-evenly');\nfunction useMergePropByScreen(oriProp, screen) {\n var _React$useState = React.useState(typeof oriProp === 'string' ? oriProp : ''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prop = _React$useState2[0],\n setProp = _React$useState2[1];\n var clacMergeAlignOrJustify = function clacMergeAlignOrJustify() {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (_typeof(oriProp) !== 'object') {\n return;\n }\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n var curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(function () {\n clacMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nvar Row = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n justify = props.justify,\n align = props.align,\n className = props.className,\n style = props.style,\n children = props.children,\n _props$gutter = props.gutter,\n gutter = _props$gutter === void 0 ? 0 : _props$gutter,\n wrap = props.wrap,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useState3 = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n screens = _React$useState4[0],\n setScreens = _React$useState4[1];\n // to save screens info when responsiveObserve callback had been call\n var _React$useState5 = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n curScreens = _React$useState6[0],\n setCurScreens = _React$useState6[1];\n // ================================== calc reponsive data ==================================\n var mergeAlign = useMergePropByScreen(align, curScreens);\n var mergeJustify = useMergePropByScreen(justify, curScreens);\n var supportFlexGap = useFlexGapSupport();\n var gutterRef = React.useRef(gutter);\n // ================================== Effect ==================================\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (screen) {\n setCurScreens(screen);\n var currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && _typeof(currentGutter) === 'object' || Array.isArray(currentGutter) && (_typeof(currentGutter[0]) === 'object' || _typeof(currentGutter[1]) === 'object')) {\n setScreens(screen);\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n // ================================== Render ==================================\n var getGutter = function getGutter() {\n var results = [undefined, undefined];\n var normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach(function (g, index) {\n if (_typeof(g) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n var prefixCls = getPrefixCls('row', customizePrefixCls);\n var gutters = getGutter();\n var classes = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-no-wrap\"), wrap === false), \"\".concat(prefixCls, \"-\").concat(mergeJustify), mergeJustify), \"\".concat(prefixCls, \"-\").concat(mergeAlign), mergeAlign), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n // Add gutter related style\n var rowStyle = {};\n var horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n var verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n var _gutters = _slicedToArray(gutters, 2);\n rowStyle.rowGap = _gutters[1];\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n var _gutters2 = _slicedToArray(gutters, 2),\n gutterH = _gutters2[0],\n gutterV = _gutters2[1];\n var rowContext = React.useMemo(function () {\n return {\n gutter: [gutterH, gutterV],\n wrap: wrap,\n supportFlexGap: supportFlexGap\n };\n }, [gutterH, gutterV, wrap, supportFlexGap]);\n return /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes,\n style: _extends(_extends({}, rowStyle), style),\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return \"\".concat(flex, \" \").concat(flex, \" auto\");\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return \"0 0 \".concat(flex);\n }\n return flex;\n}\nvar sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nvar Col = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var _React$useContext2 = React.useContext(RowContext),\n gutter = _React$useContext2.gutter,\n wrap = _React$useContext2.wrap,\n supportFlexGap = _React$useContext2.supportFlexGap;\n var customizePrefixCls = props.prefixCls,\n span = props.span,\n order = props.order,\n offset = props.offset,\n push = props.push,\n pull = props.pull,\n className = props.className,\n children = props.children,\n flex = props.flex,\n style = props.style,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n var prefixCls = getPrefixCls('col', customizePrefixCls);\n var sizeClassObj = {};\n sizes.forEach(function (size) {\n var sizeProps = {};\n var propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (_typeof(propSize) === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = _extends(_extends({}, sizeClassObj), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size, \"-\").concat(sizeProps.span), sizeProps.span !== undefined), \"\".concat(prefixCls, \"-\").concat(size, \"-order-\").concat(sizeProps.order), sizeProps.order || sizeProps.order === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-offset-\").concat(sizeProps.offset), sizeProps.offset || sizeProps.offset === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-push-\").concat(sizeProps.push), sizeProps.push || sizeProps.push === 0), \"\".concat(prefixCls, \"-\").concat(size, \"-pull-\").concat(sizeProps.pull), sizeProps.pull || sizeProps.pull === 0), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'));\n });\n var classes = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(span), span !== undefined), \"\".concat(prefixCls, \"-order-\").concat(order), order), \"\".concat(prefixCls, \"-offset-\").concat(offset), offset), \"\".concat(prefixCls, \"-push-\").concat(push), push), \"\".concat(prefixCls, \"-pull-\").concat(pull), pull), className, sizeClassObj);\n var mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n var horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n var verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n style: _extends(_extends({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children);\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport React, { Children, forwardRef, useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { Col } from '../grid';\nimport { cloneElement } from '../_util/reactNode';\nimport { ListContext } from './index';\nexport var Meta = function Meta(_a) {\n var customizePrefixCls = _a.prefixCls,\n className = _a.className,\n avatar = _a.avatar,\n title = _a.title,\n description = _a.description,\n others = __rest(_a, [\"prefixCls\", \"className\", \"avatar\", \"title\", \"description\"]);\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var classString = classNames(\"\".concat(prefixCls, \"-item-meta\"), className);\n var content = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-content\")\n }, title && /*#__PURE__*/React.createElement(\"h4\", {\n className: \"\".concat(prefixCls, \"-item-meta-title\")\n }, title), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-description\")\n }, description));\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classString\n }), avatar && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-meta-avatar\")\n }, avatar), (title || description) && content);\n};\nvar InternalItem = function InternalItem(_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n actions = _a.actions,\n extra = _a.extra,\n className = _a.className,\n colStyle = _a.colStyle,\n others = __rest(_a, [\"prefixCls\", \"children\", \"actions\", \"extra\", \"className\", \"colStyle\"]);\n var _useContext2 = useContext(ListContext),\n grid = _useContext2.grid,\n itemLayout = _useContext2.itemLayout;\n var _useContext3 = useContext(ConfigContext),\n getPrefixCls = _useContext3.getPrefixCls;\n var isItemContainsTextNodeAndNotSingular = function isItemContainsTextNodeAndNotSingular() {\n var result;\n Children.forEach(children, function (element) {\n if (typeof element === 'string') {\n result = true;\n }\n });\n return result && Children.count(children) > 1;\n };\n var isFlexMode = function isFlexMode() {\n if (itemLayout === 'vertical') {\n return !!extra;\n }\n return !isItemContainsTextNodeAndNotSingular();\n };\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var actionsContent = actions && actions.length > 0 && ( /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-item-action\"),\n key: \"actions\"\n }, actions.map(function (action, i) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n key: \"\".concat(prefixCls, \"-item-action-\").concat(i)\n }, action, i !== actions.length - 1 && /*#__PURE__*/React.createElement(\"em\", {\n className: \"\".concat(prefixCls, \"-item-action-split\")\n }))\n );\n })));\n var Element = grid ? 'div' : 'li';\n var itemChildren = /*#__PURE__*/React.createElement(Element, _extends({}, others, !grid ? {\n ref: ref\n } : {}, {\n className: classNames(\"\".concat(prefixCls, \"-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-item-no-flex\"), !isFlexMode()), className)\n }), itemLayout === 'vertical' && extra ? [/*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-main\"),\n key: \"content\"\n }, children, actionsContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-extra\"),\n key: \"extra\"\n }, extra)] : [children, actionsContent, cloneElement(extra, {\n key: 'extra'\n })]);\n return grid ? ( /*#__PURE__*/React.createElement(Col, {\n ref: ref,\n flex: 1,\n style: colStyle\n }, itemChildren)) : itemChildren;\n};\nvar Item = /*#__PURE__*/forwardRef(InternalItem);\nItem.Meta = Meta;\nexport default Item;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport defaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport { Row } from '../grid';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport { responsiveArray } from '../_util/responsiveObserve';\nimport Item from './Item';\nexport var ListContext = /*#__PURE__*/React.createContext({});\nexport var ListConsumer = ListContext.Consumer;\nfunction List(_a) {\n var _a$pagination = _a.pagination,\n pagination = _a$pagination === void 0 ? false : _a$pagination,\n customizePrefixCls = _a.prefixCls,\n _a$bordered = _a.bordered,\n bordered = _a$bordered === void 0 ? false : _a$bordered,\n _a$split = _a.split,\n split = _a$split === void 0 ? true : _a$split,\n className = _a.className,\n children = _a.children,\n itemLayout = _a.itemLayout,\n loadMore = _a.loadMore,\n grid = _a.grid,\n _a$dataSource = _a.dataSource,\n dataSource = _a$dataSource === void 0 ? [] : _a$dataSource,\n size = _a.size,\n header = _a.header,\n footer = _a.footer,\n _a$loading = _a.loading,\n loading = _a$loading === void 0 ? false : _a$loading,\n rowKey = _a.rowKey,\n renderItem = _a.renderItem,\n locale = _a.locale,\n rest = __rest(_a, [\"pagination\", \"prefixCls\", \"bordered\", \"split\", \"className\", \"children\", \"itemLayout\", \"loadMore\", \"grid\", \"dataSource\", \"size\", \"header\", \"footer\", \"loading\", \"rowKey\", \"renderItem\", \"locale\"]);\n var paginationObj = pagination && _typeof(pagination) === 'object' ? pagination : {};\n var _React$useState = React.useState(paginationObj.defaultCurrent || 1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n paginationCurrent = _React$useState2[0],\n setPaginationCurrent = _React$useState2[1];\n var _React$useState3 = React.useState(paginationObj.defaultPageSize || 10),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n paginationSize = _React$useState4[0],\n setPaginationSize = _React$useState4[1];\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n renderEmpty = _React$useContext.renderEmpty,\n direction = _React$useContext.direction;\n var defaultPaginationProps = {\n current: 1,\n total: 0\n };\n var triggerPaginationEvent = function triggerPaginationEvent(eventName) {\n return function (page, pageSize) {\n setPaginationCurrent(page);\n setPaginationSize(pageSize);\n if (pagination && pagination[eventName]) {\n pagination[eventName](page, pageSize);\n }\n };\n };\n var onPaginationChange = triggerPaginationEvent('onChange');\n var onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n var renderInnerItem = function renderInnerItem(item, index) {\n if (!renderItem) return null;\n var key;\n if (typeof rowKey === 'function') {\n key = rowKey(item);\n } else if (rowKey) {\n key = item[rowKey];\n } else {\n key = item.key;\n }\n if (!key) {\n key = \"list-item-\".concat(index);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: key\n }, renderItem(item, index));\n };\n var isSomethingAfterLastItem = function isSomethingAfterLastItem() {\n return !!(loadMore || pagination || footer);\n };\n var renderEmptyFunc = function renderEmptyFunc(prefixCls, renderEmptyHandler) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-empty-text\")\n }, locale && locale.emptyText || renderEmptyHandler('List'));\n };\n var prefixCls = getPrefixCls('list', customizePrefixCls);\n var loadingProp = loading;\n if (typeof loadingProp === 'boolean') {\n loadingProp = {\n spinning: loadingProp\n };\n }\n var isLoading = loadingProp && loadingProp.spinning;\n // large => lg\n // small => sm\n var sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n default:\n break;\n }\n var classString = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-vertical\"), itemLayout === 'vertical'), \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), \"\".concat(prefixCls, \"-split\"), split), \"\".concat(prefixCls, \"-bordered\"), bordered), \"\".concat(prefixCls, \"-loading\"), isLoading), \"\".concat(prefixCls, \"-grid\"), !!grid), \"\".concat(prefixCls, \"-something-after-last-item\"), isSomethingAfterLastItem()), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n var paginationProps = _extends(_extends(_extends({}, defaultPaginationProps), {\n total: dataSource.length,\n current: paginationCurrent,\n pageSize: paginationSize\n }), pagination || {});\n var largestPage = Math.ceil(paginationProps.total / paginationProps.pageSize);\n if (paginationProps.current > largestPage) {\n paginationProps.current = largestPage;\n }\n var paginationContent = pagination ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-pagination\")\n }, /*#__PURE__*/React.createElement(Pagination, _extends({}, paginationProps, {\n onChange: onPaginationChange,\n onShowSizeChange: onPaginationShowSizeChange\n })))) : null;\n var splitDataSource = _toConsumableArray(dataSource);\n if (pagination) {\n if (dataSource.length > (paginationProps.current - 1) * paginationProps.pageSize) {\n splitDataSource = _toConsumableArray(dataSource).splice((paginationProps.current - 1) * paginationProps.pageSize, paginationProps.pageSize);\n }\n }\n var needResponsive = Object.keys(grid || {}).some(function (key) {\n return ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].includes(key);\n });\n var screens = useBreakpoint(needResponsive);\n var currentBreakpoint = React.useMemo(function () {\n for (var i = 0; i < responsiveArray.length; i += 1) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint]) {\n return breakpoint;\n }\n }\n return undefined;\n }, [screens]);\n var colStyle = React.useMemo(function () {\n if (!grid) {\n return undefined;\n }\n var columnCount = currentBreakpoint && grid[currentBreakpoint] ? grid[currentBreakpoint] : grid.column;\n if (columnCount) {\n return {\n width: \"\".concat(100 / columnCount, \"%\"),\n maxWidth: \"\".concat(100 / columnCount, \"%\")\n };\n }\n }, [grid === null || grid === void 0 ? void 0 : grid.column, currentBreakpoint]);\n var childrenContent = isLoading && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n minHeight: 53\n }\n });\n if (splitDataSource.length > 0) {\n var items = splitDataSource.map(function (item, index) {\n return renderInnerItem(item, index);\n });\n childrenContent = grid ? ( /*#__PURE__*/React.createElement(Row, {\n gutter: grid.gutter\n }, React.Children.map(items, function (child) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: child === null || child === void 0 ? void 0 : child.key,\n style: colStyle\n }, child);\n }))) : ( /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-items\")\n }, items));\n } else if (!children && !isLoading) {\n childrenContent = renderEmptyFunc(prefixCls, renderEmpty || defaultRenderEmpty);\n }\n var paginationPosition = paginationProps.position || 'bottom';\n var contextValue = React.useMemo(function () {\n return {\n grid: grid,\n itemLayout: itemLayout\n };\n }, [JSON.stringify(grid), itemLayout]);\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classString\n }, rest), (paginationPosition === 'top' || paginationPosition === 'both') && paginationContent, header && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, header), /*#__PURE__*/React.createElement(Spin, _extends({}, loadingProp), childrenContent, children), footer && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer), loadMore || (paginationPosition === 'bottom' || paginationPosition === 'both') && paginationContent));\n}\nList.Item = Item;\nexport default List;","// This icon file is generated automatically.\nvar DeleteTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M292.7 840h438.6l24.2-512h-487z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z\", \"fill\": primaryColor } }] }; }, \"name\": \"delete\", \"theme\": \"twotone\" };\nexport default DeleteTwoTone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DeleteTwoToneSvg from \"@ant-design/icons-svg/es/asn/DeleteTwoTone\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DeleteTwoTone = function DeleteTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DeleteTwoToneSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n DeleteTwoTone.displayName = 'DeleteTwoTone';\n}\nexport default /*#__PURE__*/React.forwardRef(DeleteTwoTone);","import { Buffer } from 'buffer';\n\nexport const ab2str = (buf: Array) => {\n const decoder = new TextDecoder();\n return decoder.decode(Buffer.from(buf));\n};\n\n// https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String\n// https://developer.mozilla.org/zh-CN/docs/Web/API/TextEncoder\nexport const str2ab = (str: string) => {\n const encoder = new TextEncoder();\n return encoder.encode(str);\n};\n","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, List, message, Modal } from 'antd';\nimport { DeleteTwoTone } from '@ant-design/icons';\nimport { connect } from 'dva';\nimport { ab2str, str2ab } from '../../utils/buffer';\nimport { timeToString } from '../../utils/icTime';\n\nconst ApplyForms: FC = (props: any) => {\n const { applyActor, agent, agentType, whitelist } = props.use_agent;\n\n const [forms, setForms] = useState([]);\n\n const [loading, setLoading] = useState(false);\n\n const [deleteModalVisible, setDeleteModalVisible] = useState(false);\n\n useEffect(() => {\n (async () => {\n await getApplyForms();\n })();\n }, []);\n\n const getApplyForms = async () => {\n setLoading(true);\n const res = await applyActor.allApply();\n const forms = res.map((item: number[]) => {\n return JSON.parse(ab2str(item));\n });\n setForms(forms);\n setLoading(false);\n };\n\n const [chosen, setChosen] = useState(null);\n const [deleteLoading, setDeleteLoading] = useState(false);\n\n const deleteItem = (item: any) => {\n setDeleteModalVisible(true);\n setChosen(item);\n };\n\n const confirmDelete = async () => {\n setDeleteLoading(true);\n const res = await applyActor.delApply(Array.from(str2ab(JSON.stringify(chosen))));\n setDeleteLoading(false);\n if (res) {\n message.success('Deleted');\n let newForms = Array.from(forms);\n newForms.splice(newForms.indexOf(chosen), 1);\n setForms(newForms);\n setDeleteModalVisible(false);\n } else {\n message.error('Delete failed');\n }\n };\n\n const [detailModalVisible, setDetailModalVisible] = useState(false);\n\n const showDetail = (item: any) => {\n setChosen(item);\n setDetailModalVisible(true);\n };\n\n return (\n \n \n \n {forms.map((item: any) => {\n return (\n showDetail(item)}>Details,\n ,\n ]}\n >\n Name: {item[Object.keys(item)[0]]}\n {'\\u00A0\\u00A0\\u00A0'}\n Time: {timeToString(item.time)}\n \n );\n })}\n \n setDeleteModalVisible(false)}\n onOk={confirmDelete}\n >\n \n Are you sure to delete this application?\n \n setDetailModalVisible(false)}\n >\n {chosen\n ? Object.keys(chosen).map((key: string) => {\n return (\n <>\n {key}\n
\n {chosen[key]}\n
\n \n );\n })\n : null}\n \n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(ApplyForms);\n","import moment from 'moment';\nimport { noteOnce } from \"rc-util/es/warning\";\nvar generateConfig = {\n // get\n getNow: function getNow() {\n return moment();\n },\n getFixedDate: function getFixedDate(string) {\n return moment(string, 'YYYY-MM-DD');\n },\n getEndDate: function getEndDate(date) {\n var clone = date.clone();\n return clone.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.clone().locale('en_US');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n // set\n addYear: function addYear(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n var clone = date.clone();\n return clone.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n var clone = date.clone();\n return clone.year(year);\n },\n setMonth: function setMonth(date, month) {\n var clone = date.clone();\n return clone.month(month);\n },\n setDate: function setDate(date, num) {\n var clone = date.clone();\n return clone.date(num);\n },\n setHour: function setHour(date, hour) {\n var clone = date.clone();\n return clone.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n var clone = date.clone();\n return clone.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n var clone = date.clone();\n return clone.second(second);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n var date = moment().locale(locale);\n return date.localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n var date = moment().locale(locale);\n return date.localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n var date = moment().locale(locale);\n return date.localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n var clone = date.clone();\n var result = clone.locale(locale);\n return result.format(_format);\n },\n parse: function parse(locale, text, formats) {\n var fallbackFormatList = [];\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W');\n var matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g);\n var matchText = formatText.match(/[-\\d]+/g);\n if (matchFormat && matchText) {\n format = matchFormat.join('');\n formatText = matchText.join('');\n } else {\n fallbackFormatList.push(format.replace(/o/g, ''));\n }\n }\n var date = moment(formatText, format, locale, true);\n if (date.isValid()) {\n return date;\n }\n }\n // Fallback to fuzzy matching, this should always not reach match or need fire a issue\n for (var _i = 0; _i < fallbackFormatList.length; _i += 1) {\n var _date = moment(text, fallbackFormatList[_i], locale, false);\n /* istanbul ignore next */\n if (_date.isValid()) {\n noteOnce(false, 'Not match any format strictly and fallback to fuzzy match. Please help to fire a issue about this.');\n return _date;\n }\n }\n return null;\n }\n }\n};\nexport default generateConfig;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\nCalendarOutlined.displayName = 'CalendarOutlined';\nexport default /*#__PURE__*/React.forwardRef(CalendarOutlined);","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\nClockCircleOutlined.displayName = 'ClockCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ClockCircleOutlined);","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\nSwapRightOutlined.displayName = 'SwapRightOutlined';\nexport default /*#__PURE__*/React.forwardRef(SwapRightOutlined);","import * as React from 'react';\nvar PanelContext = /*#__PURE__*/React.createContext({});\nexport default PanelContext;","import * as React from 'react';\nimport PanelContext from '../PanelContext';\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction Header(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$prevIcon = _ref.prevIcon,\n prevIcon = _ref$prevIcon === void 0 ? \"\\u2039\" : _ref$prevIcon,\n _ref$nextIcon = _ref.nextIcon,\n nextIcon = _ref$nextIcon === void 0 ? \"\\u203A\" : _ref$nextIcon,\n _ref$superPrevIcon = _ref.superPrevIcon,\n superPrevIcon = _ref$superPrevIcon === void 0 ? \"\\xAB\" : _ref$superPrevIcon,\n _ref$superNextIcon = _ref.superNextIcon,\n superNextIcon = _ref$superNextIcon === void 0 ? \"\\xBB\" : _ref$superNextIcon,\n onSuperPrev = _ref.onSuperPrev,\n onSuperNext = _ref.onSuperNext,\n onPrev = _ref.onPrev,\n onNext = _ref.onNext,\n children = _ref.children;\n var _React$useContext = React.useContext(PanelContext),\n hideNextBtn = _React$useContext.hideNextBtn,\n hidePrevBtn = _React$useContext.hidePrevBtn;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: prefixCls\n }, onSuperPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, superPrevIcon), onPrev && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onPrev,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-prev-btn\"),\n style: hidePrevBtn ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, children), onNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, nextIcon), onSuperNext && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onSuperNext,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-super-next-btn\"),\n style: hideNextBtn ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default Header;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport { DECADE_DISTANCE_COUNT } from '.';\nimport PanelContext from '../../PanelContext';\nfunction DecadeHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecades = props.onPrevDecades,\n onNextDecades = props.onNextDecades;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endYear = startYear + DECADE_DISTANCE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecades,\n onSuperNext: onNextDecades\n }), startYear, \"-\", endYear);\n}\nexport default DecadeHeader;","export function setTime(generateConfig, date, hour, minute, second) {\n var nextTime = generateConfig.setHour(date, hour);\n nextTime = generateConfig.setMinute(nextTime, minute);\n nextTime = generateConfig.setSecond(nextTime, second);\n return nextTime;\n}\nexport function setDateTime(generateConfig, date, defaultDate) {\n if (!defaultDate) {\n return date;\n }\n var newDate = date;\n newDate = generateConfig.setHour(newDate, generateConfig.getHour(defaultDate));\n newDate = generateConfig.setMinute(newDate, generateConfig.getMinute(defaultDate));\n newDate = generateConfig.setSecond(newDate, generateConfig.getSecond(defaultDate));\n return newDate;\n}\nexport function getLowerBoundTime(hour, minute, second, hourStep, minuteStep, secondStep) {\n var lowerBoundHour = Math.floor(hour / hourStep) * hourStep;\n if (lowerBoundHour < hour) {\n return [lowerBoundHour, 60 - minuteStep, 60 - secondStep];\n }\n var lowerBoundMinute = Math.floor(minute / minuteStep) * minuteStep;\n if (lowerBoundMinute < minute) {\n return [lowerBoundHour, lowerBoundMinute, 60 - secondStep];\n }\n var lowerBoundSecond = Math.floor(second / secondStep) * secondStep;\n return [lowerBoundHour, lowerBoundMinute, lowerBoundSecond];\n}\nexport function getLastDay(generateConfig, date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date) + 1;\n var endDate = generateConfig.getEndDate(generateConfig.getFixedDate(\"\".concat(year, \"-\").concat(month, \"-01\")));\n var lastDay = generateConfig.getDate(endDate);\n var monthShow = month < 10 ? \"0\".concat(month) : \"\".concat(month);\n return \"\".concat(year, \"-\").concat(monthShow, \"-\").concat(lastDay);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport PanelContext from '../PanelContext';\nimport { getLastDay } from '../utils/timeUtil';\nimport { getCellDateDisabled } from '../utils/dateUtil';\nexport default function PanelBody(_ref) {\n var prefixCls = _ref.prefixCls,\n disabledDate = _ref.disabledDate,\n onSelect = _ref.onSelect,\n picker = _ref.picker,\n rowNum = _ref.rowNum,\n colNum = _ref.colNum,\n prefixColumn = _ref.prefixColumn,\n rowClassName = _ref.rowClassName,\n baseDate = _ref.baseDate,\n getCellClassName = _ref.getCellClassName,\n getCellText = _ref.getCellText,\n getCellNode = _ref.getCellNode,\n getCellDate = _ref.getCellDate,\n generateConfig = _ref.generateConfig,\n titleCell = _ref.titleCell,\n headerCells = _ref.headerCells;\n var _React$useContext = React.useContext(PanelContext),\n onDateMouseEnter = _React$useContext.onDateMouseEnter,\n onDateMouseLeave = _React$useContext.onDateMouseLeave,\n mode = _React$useContext.mode;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n // =============================== Body ===============================\n var rows = [];\n for (var i = 0; i < rowNum; i += 1) {\n var row = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var _objectSpread2;\n var offset = i * colNum + j;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = getCellDateDisabled({\n cellDate: currentDate,\n mode: mode,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n });\n if (j === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n row.push(prefixColumn(rowStartDate));\n }\n }\n var title = titleCell && titleCell(currentDate);\n row.push( /*#__PURE__*/React.createElement(\"td\", {\n key: j,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread((_objectSpread2 = {}, _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-start\"), getCellText(currentDate) === 1 || picker === 'year' && Number(title) % 10 === 0), _defineProperty(_objectSpread2, \"\".concat(cellPrefixCls, \"-end\"), title === getLastDay(generateConfig, currentDate) || picker === 'year' && Number(title) % 10 === 9), _objectSpread2), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled && onDateMouseEnter) {\n onDateMouseEnter(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled && onDateMouseLeave) {\n onDateMouseLeave(currentDate);\n }\n }\n }, getCellNode ? getCellNode(currentDate) : /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate))));\n };\n for (var j = 0; j < colNum; j += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: i,\n className: rowClassName && rowClassName(rowStartDate)\n }, row));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { DECADE_DISTANCE_COUNT, DECADE_UNIT_DIFF } from '.';\nimport PanelBody from '../PanelBody';\nexport var DECADE_COL_COUNT = 3;\nvar DECADE_ROW_COUNT = 4;\nfunction DecadeBody(props) {\n var DECADE_UNIT_DIFF_DES = DECADE_UNIT_DIFF - 1;\n var prefixCls = props.prefixCls,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var yearNumber = generateConfig.getYear(viewDate);\n var decadeYearNumber = Math.floor(yearNumber / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var startDecadeYear = Math.floor(yearNumber / DECADE_DISTANCE_COUNT) * DECADE_DISTANCE_COUNT;\n var endDecadeYear = startDecadeYear + DECADE_DISTANCE_COUNT - 1;\n var baseDecadeYear = generateConfig.setYear(viewDate, startDecadeYear - Math.ceil((DECADE_COL_COUNT * DECADE_ROW_COUNT * DECADE_UNIT_DIFF - DECADE_DISTANCE_COUNT) / 2));\n var getCellClassName = function getCellClassName(date) {\n var _ref;\n var startDecadeNumber = generateConfig.getYear(date);\n var endDecadeNumber = startDecadeNumber + DECADE_UNIT_DIFF_DES;\n return _ref = {}, _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-in-view\"), startDecadeYear <= startDecadeNumber && endDecadeNumber <= endDecadeYear), _defineProperty(_ref, \"\".concat(cellPrefixCls, \"-selected\"), startDecadeNumber === decadeYearNumber), _ref;\n };\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: DECADE_ROW_COUNT,\n colNum: DECADE_COL_COUNT,\n baseDate: baseDecadeYear,\n getCellText: function getCellText(date) {\n var startDecadeNumber = generateConfig.getYear(date);\n return \"\".concat(startDecadeNumber, \"-\").concat(startDecadeNumber + DECADE_UNIT_DIFF_DES);\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * DECADE_UNIT_DIFF);\n }\n }));\n}\nexport default DecadeBody;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nvar scrollIds = new Map();\n/** Trigger when element is visible in view */\nexport function waitElementReady(element, callback) {\n var id;\n function tryOrNextFrame() {\n if (isVisible(element)) {\n callback();\n } else {\n id = raf(function () {\n tryOrNextFrame();\n });\n }\n }\n tryOrNextFrame();\n return function () {\n raf.cancel(id);\n };\n}\n/* eslint-disable no-param-reassign */\nexport function scrollTo(element, to, duration) {\n if (scrollIds.get(element)) {\n cancelAnimationFrame(scrollIds.get(element));\n }\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop = to;\n }));\n return;\n }\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n scrollIds.set(element, requestAnimationFrame(function () {\n element.scrollTop += perTick;\n if (element.scrollTop !== to) {\n scrollTo(element, to, duration - 10);\n }\n }));\n}\nexport function createKeyDownHandler(event, _ref) {\n var onLeftRight = _ref.onLeftRight,\n onCtrlLeftRight = _ref.onCtrlLeftRight,\n onUpDown = _ref.onUpDown,\n onPageUpDown = _ref.onPageUpDown,\n onEnter = _ref.onEnter;\n var which = event.which,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n switch (which) {\n case KeyCode.LEFT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(-1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.RIGHT:\n if (ctrlKey || metaKey) {\n if (onCtrlLeftRight) {\n onCtrlLeftRight(1);\n return true;\n }\n } else if (onLeftRight) {\n onLeftRight(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.UP:\n if (onUpDown) {\n onUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.DOWN:\n if (onUpDown) {\n onUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_UP:\n if (onPageUpDown) {\n onPageUpDown(-1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.PAGE_DOWN:\n if (onPageUpDown) {\n onPageUpDown(1);\n return true;\n }\n /* istanbul ignore next */\n break;\n case KeyCode.ENTER:\n if (onEnter) {\n onEnter();\n return true;\n }\n /* istanbul ignore next */\n break;\n }\n return false;\n}\n// ===================== Format =====================\nexport function getDefaultFormat(format, picker, showTime, use12Hours) {\n var mergedFormat = format;\n if (!mergedFormat) {\n switch (picker) {\n case 'time':\n mergedFormat = use12Hours ? 'hh:mm:ss a' : 'HH:mm:ss';\n break;\n case 'week':\n mergedFormat = 'gggg-wo';\n break;\n case 'month':\n mergedFormat = 'YYYY-MM';\n break;\n case 'quarter':\n mergedFormat = 'YYYY-[Q]Q';\n break;\n case 'year':\n mergedFormat = 'YYYY';\n break;\n default:\n mergedFormat = showTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';\n }\n }\n return mergedFormat;\n}\nexport function getInputSize(picker, format, generateConfig) {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof format === 'function' ? format(generateConfig.getNow()).length : format.length;\n return Math.max(defaultSize, length) + 2;\n}\nvar globalClickFunc = null;\nvar clickCallbacks = new Set();\nexport function addGlobalMouseDownEvent(callback) {\n if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) {\n globalClickFunc = function globalClickFunc(e) {\n // Clone a new list to avoid repeat trigger events\n _toConsumableArray(clickCallbacks).forEach(function (queueFunc) {\n queueFunc(e);\n });\n };\n window.addEventListener('mousedown', globalClickFunc);\n }\n clickCallbacks.add(callback);\n return function () {\n clickCallbacks.delete(callback);\n if (clickCallbacks.size === 0) {\n window.removeEventListener('mousedown', globalClickFunc);\n globalClickFunc = null;\n }\n };\n}\nexport function getTargetFromEvent(e) {\n var target = e.target;\n // get target if in shadow dom\n if (e.composed && target.shadowRoot) {\n var _e$composedPath;\n return ((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath.call(e)[0]) || target;\n }\n return target;\n}\n// ====================== Mode ======================\nvar getYearNextMode = function getYearNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'year';\n }\n return next;\n};\nvar getMonthNextMode = function getMonthNextMode(next) {\n if (next === 'date') {\n return 'month';\n }\n return next;\n};\nvar getQuarterNextMode = function getQuarterNextMode(next) {\n if (next === 'month' || next === 'date') {\n return 'quarter';\n }\n return next;\n};\nvar getWeekNextMode = function getWeekNextMode(next) {\n if (next === 'date') {\n return 'week';\n }\n return next;\n};\nexport var PickerModeMap = {\n year: getYearNextMode,\n month: getMonthNextMode,\n quarter: getQuarterNextMode,\n week: getWeekNextMode,\n time: null,\n date: null\n};\nexport function elementsContains(elements, target) {\n return elements.some(function (ele) {\n return ele && ele.contains(target);\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DecadeHeader from './DecadeHeader';\nimport DecadeBody, { DECADE_COL_COUNT } from './DecadeBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nexport var DECADE_UNIT_DIFF = 10;\nexport var DECADE_DISTANCE_COUNT = DECADE_UNIT_DIFF * 10;\nfunction DecadePanel(props) {\n var prefixCls = props.prefixCls,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n operationRef = props.operationRef,\n onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n onSelect(generateConfig.addYear(viewDate, diff * DECADE_UNIT_DIFF * DECADE_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('year', viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onDecadesChange = function onDecadesChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * DECADE_DISTANCE_COUNT);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onInternalSelect = function onInternalSelect(date) {\n onSelect(date, 'mouse');\n onPanelChange('year', date);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DecadeHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecades: function onPrevDecades() {\n onDecadesChange(-1);\n },\n onNextDecades: function onNextDecades() {\n onDecadesChange(1);\n }\n })), /*#__PURE__*/React.createElement(DecadeBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: onInternalSelect\n })));\n}\nexport default DecadePanel;","import { DECADE_UNIT_DIFF } from '../panels/DecadePanel/index';\nexport var WEEK_DAY_COUNT = 7;\nexport function isNullEqual(value1, value2) {\n if (!value1 && !value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return undefined;\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n var equal = isNullEqual(decade1, decade2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n}\nexport function isSameYear(generateConfig, year1, year2) {\n var equal = isNullEqual(year1, year2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n var equal = isNullEqual(quarter1, quarter2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n var equal = isNullEqual(month1, month2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n}\nexport function isSameDate(generateConfig, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getYear(date1) === generateConfig.getYear(date2) && generateConfig.getMonth(date1) === generateConfig.getMonth(date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n}\nexport function isSameTime(generateConfig, time1, time2) {\n var equal = isNullEqual(time1, time2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n var equal = isNullEqual(date1, date2);\n if (typeof equal === 'boolean') {\n return equal;\n }\n return isSameYear(generateConfig, date1, date2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n}\nexport function isEqual(generateConfig, value1, value2) {\n return isSameDate(generateConfig, value1, value2) && isSameTime(generateConfig, value1, value2);\n}\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return !isSameDate(generateConfig, startDate, current) && !isSameDate(generateConfig, endDate, current) && generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function getClosingViewDate(viewDate, picker, generateConfig) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n switch (picker) {\n case 'year':\n return generateConfig.addYear(viewDate, offset * 10);\n case 'quarter':\n case 'month':\n return generateConfig.addYear(viewDate, offset);\n default:\n return generateConfig.addMonth(viewDate, offset);\n }\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\nexport function parseValue(value, _ref2) {\n var generateConfig = _ref2.generateConfig,\n locale = _ref2.locale,\n formatList = _ref2.formatList;\n if (!value || typeof formatList[0] === 'function') {\n return null;\n }\n return generateConfig.locale.parse(locale.locale, value, formatList);\n}\n// eslint-disable-next-line consistent-return\nexport function getCellDateDisabled(_ref3) {\n var cellDate = _ref3.cellDate,\n mode = _ref3.mode,\n disabledDate = _ref3.disabledDate,\n generateConfig = _ref3.generateConfig;\n if (!disabledDate) return false;\n // Whether cellDate is disabled in range\n var getDisabledFromRange = function getDisabledFromRange(currentMode, start, end) {\n var current = start;\n while (current <= end) {\n var date = void 0;\n switch (currentMode) {\n case 'date':\n {\n date = generateConfig.setDate(cellDate, current);\n if (!disabledDate(date)) {\n return false;\n }\n break;\n }\n case 'month':\n {\n date = generateConfig.setMonth(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: date,\n mode: 'month',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n case 'year':\n {\n date = generateConfig.setYear(cellDate, current);\n if (!getCellDateDisabled({\n cellDate: date,\n mode: 'year',\n generateConfig: generateConfig,\n disabledDate: disabledDate\n })) {\n return false;\n }\n break;\n }\n }\n current += 1;\n }\n return true;\n };\n switch (mode) {\n case 'date':\n case 'week':\n {\n return disabledDate(cellDate);\n }\n case 'month':\n {\n var startDate = 1;\n var endDate = generateConfig.getDate(generateConfig.getEndDate(cellDate));\n return getDisabledFromRange('date', startDate, endDate);\n }\n case 'quarter':\n {\n var startMonth = Math.floor(generateConfig.getMonth(cellDate) / 3) * 3;\n var endMonth = startMonth + 2;\n return getDisabledFromRange('month', startMonth, endMonth);\n }\n case 'year':\n {\n return getDisabledFromRange('month', 0, 11);\n }\n case 'decade':\n {\n var year = generateConfig.getYear(cellDate);\n var startYear = Math.floor(year / DECADE_UNIT_DIFF) * DECADE_UNIT_DIFF;\n var endYear = startYear + DECADE_UNIT_DIFF - 1;\n return getDisabledFromRange('year', startYear, endYear);\n }\n }\n}","import * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction TimeHeader(props) {\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n format = props.format;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, {\n prefixCls: headerPrefixCls\n }, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\");\n}\nexport default TimeHeader;","export function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(str);\n }\n return current;\n}\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n};\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport default function getDataOrAriaProps(props) {\n var retProps = {};\n Object.keys(props).forEach(function (key) {\n if ((key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role' || key === 'name') && key.substr(0, 7) !== 'data-__') {\n retProps[key] = props[key];\n }\n });\n return retProps;\n}\nexport function getValue(values, index) {\n return values ? values[index] : null;\n}\nexport function updateValues(values, value, index) {\n var newValues = [getValue(values, 0), getValue(values, 1)];\n newValues[index] = typeof value === 'function' ? value(newValues[index]) : value;\n if (!newValues[0] && !newValues[1]) {\n return null;\n }\n return newValues;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { useRef, useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { scrollTo, waitElementReady } from '../../utils/uiUtil';\nimport PanelContext from '../../PanelContext';\nfunction TimeUnitColumn(props) {\n var prefixCls = props.prefixCls,\n units = props.units,\n onSelect = props.onSelect,\n value = props.value,\n active = props.active,\n hideDisabledOptions = props.hideDisabledOptions;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _React$useContext = React.useContext(PanelContext),\n open = _React$useContext.open;\n var ulRef = useRef(null);\n var liRefs = useRef(new Map());\n var scrollRef = useRef();\n // `useLayoutEffect` here to avoid blink by duration is 0\n useLayoutEffect(function () {\n var li = liRefs.current.get(value);\n if (li && open !== false) {\n scrollTo(ulRef.current, li.offsetTop, 120);\n }\n }, [value]);\n useLayoutEffect(function () {\n if (open) {\n var li = liRefs.current.get(value);\n if (li) {\n scrollRef.current = waitElementReady(li, function () {\n scrollTo(ulRef.current, li.offsetTop, 0);\n });\n }\n }\n return function () {\n var _scrollRef$current;\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.call(scrollRef);\n };\n }, [open]);\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: classNames(\"\".concat(prefixCls, \"-column\"), _defineProperty({}, \"\".concat(prefixCls, \"-column-active\"), active)),\n ref: ulRef,\n style: {\n position: 'relative'\n }\n }, units.map(function (unit) {\n var _classNames2;\n if (hideDisabledOptions && unit.disabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unit.value,\n ref: function ref(element) {\n liRefs.current.set(unit.value, element);\n },\n className: classNames(cellPrefixCls, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-disabled\"), unit.disabled), _defineProperty(_classNames2, \"\".concat(cellPrefixCls, \"-selected\"), value === unit.value), _classNames2)),\n onClick: function onClick() {\n if (unit.disabled) {\n return;\n }\n onSelect(unit.value);\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, unit.label));\n }));\n}\nexport default TimeUnitColumn;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport useTimeSelection from '../../hooks/useTimeSelection';\nimport { leftPad } from '../../utils/miscUtil';\nimport TimeUnitColumn from './TimeUnitColumn';\nfunction shouldUnitsUpdate(prevUnits, nextUnits) {\n if (prevUnits.length !== nextUnits.length) return true;\n // if any unit's disabled status is different, the units should be re-evaluted\n for (var i = 0; i < prevUnits.length; i += 1) {\n if (prevUnits[i].disabled !== nextUnits[i].disabled) return true;\n }\n return false;\n}\nfunction generateUnits(start, end, step, disabledUnits) {\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n units.push({\n label: leftPad(i, 2),\n value: i,\n disabled: (disabledUnits || []).includes(i)\n });\n }\n return units;\n}\nfunction TimeBody(props) {\n var generateConfig = props.generateConfig,\n prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n activeColumnIndex = props.activeColumnIndex,\n value = props.value,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds,\n disabledTime = props.disabledTime,\n hideDisabledOptions = props.hideDisabledOptions,\n onSelect = props.onSelect;\n // Misc\n var columns = [];\n var contentPrefixCls = \"\".concat(prefixCls, \"-content\");\n var columnPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var isPM;\n var originHour = value ? generateConfig.getHour(value) : -1;\n var hour = originHour;\n var minute = value ? generateConfig.getMinute(value) : -1;\n var second = value ? generateConfig.getSecond(value) : -1;\n // Disabled Time\n var now = generateConfig.getNow();\n var _React$useMemo = React.useMemo(function () {\n if (disabledTime) {\n var disabledConfig = disabledTime(now);\n return [disabledConfig.disabledHours, disabledConfig.disabledMinutes, disabledConfig.disabledSeconds];\n }\n return [disabledHours, disabledMinutes, disabledSeconds];\n }, [disabledHours, disabledMinutes, disabledSeconds, disabledTime, now]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 3),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2];\n // ========================= Unit =========================\n var rawHours = generateUnits(0, 23, hourStep, mergedDisabledHours && mergedDisabledHours());\n var memorizedRawHours = useMemo(function () {\n return rawHours;\n }, rawHours, shouldUnitsUpdate);\n // Should additional logic to handle 12 hours\n if (use12Hours) {\n isPM = hour >= 12; // -1 means should display AM\n hour %= 12;\n }\n var _React$useMemo3 = React.useMemo(function () {\n if (!use12Hours) {\n return [false, false];\n }\n var AMPMDisabled = [true, true];\n memorizedRawHours.forEach(function (_ref) {\n var disabled = _ref.disabled,\n hourValue = _ref.value;\n if (disabled) return;\n if (hourValue >= 12) {\n AMPMDisabled[1] = false;\n } else {\n AMPMDisabled[0] = false;\n }\n });\n return AMPMDisabled;\n }, [use12Hours, memorizedRawHours]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n AMDisabled = _React$useMemo4[0],\n PMDisabled = _React$useMemo4[1];\n var hours = React.useMemo(function () {\n if (!use12Hours) return memorizedRawHours;\n return memorizedRawHours.filter(isPM ? function (hourMeta) {\n return hourMeta.value >= 12;\n } : function (hourMeta) {\n return hourMeta.value < 12;\n }).map(function (hourMeta) {\n var hourValue = hourMeta.value % 12;\n var hourLabel = hourValue === 0 ? '12' : leftPad(hourValue, 2);\n return _objectSpread(_objectSpread({}, hourMeta), {}, {\n label: hourLabel,\n value: hourValue\n });\n });\n }, [use12Hours, isPM, memorizedRawHours]);\n var minutes = generateUnits(0, 59, minuteStep, mergedDisabledMinutes && mergedDisabledMinutes(originHour));\n var seconds = generateUnits(0, 59, secondStep, mergedDisabledSeconds && mergedDisabledSeconds(originHour, minute));\n // Set Time\n var setTime = useTimeSelection({\n value: value,\n generateConfig: generateConfig,\n disabledMinutes: mergedDisabledMinutes,\n disabledSeconds: mergedDisabledSeconds,\n minutes: minutes,\n seconds: seconds,\n use12Hours: use12Hours\n });\n // ====================== Operations ======================\n operationRef.current = {\n onUpDown: function onUpDown(diff) {\n var column = columns[activeColumnIndex];\n if (column) {\n var valueIndex = column.units.findIndex(function (unit) {\n return unit.value === column.value;\n });\n var unitLen = column.units.length;\n for (var i = 1; i < unitLen; i += 1) {\n var nextUnit = column.units[(valueIndex + diff * i + unitLen) % unitLen];\n if (nextUnit.disabled !== true) {\n column.onSelect(nextUnit.value);\n break;\n }\n }\n }\n }\n };\n // ======================== Render ========================\n function addColumnNode(condition, node, columnValue, units, onColumnSelect) {\n if (condition !== false) {\n columns.push({\n node: /*#__PURE__*/React.cloneElement(node, {\n prefixCls: columnPrefixCls,\n value: columnValue,\n active: activeColumnIndex === columns.length,\n onSelect: onColumnSelect,\n units: units,\n hideDisabledOptions: hideDisabledOptions\n }),\n onSelect: onColumnSelect,\n value: columnValue,\n units: units\n });\n }\n }\n // Hour\n addColumnNode(showHour, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"hour\"\n }), hour, hours, function (num) {\n onSelect(setTime(isPM, num, minute, second), 'mouse');\n });\n // Minute\n addColumnNode(showMinute, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"minute\"\n }), minute, minutes, function (num) {\n onSelect(setTime(isPM, hour, num, second), 'mouse');\n });\n // Second\n addColumnNode(showSecond, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"second\"\n }), second, seconds, function (num) {\n onSelect(setTime(isPM, hour, minute, num), 'mouse');\n });\n // 12 Hours\n var PMIndex = -1;\n if (typeof isPM === 'boolean') {\n PMIndex = isPM ? 1 : 0;\n }\n addColumnNode(use12Hours === true, /*#__PURE__*/React.createElement(TimeUnitColumn, {\n key: \"12hours\"\n }), PMIndex, [{\n label: 'AM',\n value: 0,\n disabled: AMDisabled\n }, {\n label: 'PM',\n value: 1,\n disabled: PMDisabled\n }], function (num) {\n onSelect(setTime(!!num, hour, minute, second), 'mouse');\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: contentPrefixCls\n }, columns.map(function (_ref2) {\n var node = _ref2.node;\n return node;\n }));\n}\nexport default TimeBody;","import { setTime as utilSetTime } from '../utils/timeUtil';\nexport default function useTimeSelection(_ref) {\n var value = _ref.value,\n generateConfig = _ref.generateConfig,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n minutes = _ref.minutes,\n seconds = _ref.seconds,\n use12Hours = _ref.use12Hours;\n var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {\n var newDate = value || generateConfig.getNow();\n var mergedHour = Math.max(0, newHour);\n var mergedMinute = Math.max(0, newMinute);\n var mergedSecond = Math.max(0, newSecond);\n var newDisabledMinutes = disabledMinutes && disabledMinutes(mergedHour);\n if (newDisabledMinutes === null || newDisabledMinutes === void 0 ? void 0 : newDisabledMinutes.includes(mergedMinute)) {\n // find the first available minute in minutes\n var availableMinute = minutes.find(function (i) {\n return !newDisabledMinutes.includes(i.value);\n });\n if (availableMinute) {\n mergedMinute = availableMinute.value;\n } else {\n return null;\n }\n }\n var newDisabledSeconds = disabledSeconds && disabledSeconds(mergedHour, mergedMinute);\n if (newDisabledSeconds === null || newDisabledSeconds === void 0 ? void 0 : newDisabledSeconds.includes(mergedSecond)) {\n // find the first available second in seconds\n var availableSecond = seconds.find(function (i) {\n return !newDisabledSeconds.includes(i.value);\n });\n if (availableSecond) {\n mergedSecond = availableSecond.value;\n } else {\n return null;\n }\n }\n newDate = utilSetTime(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);\n return newDate;\n };\n return setTime;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TimeHeader from './TimeHeader';\nimport TimeBody from './TimeBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nvar countBoolean = function countBoolean(boolList) {\n return boolList.filter(function (bool) {\n return bool !== false;\n }).length;\n};\nfunction TimePanel(props) {\n var generateConfig = props.generateConfig,\n _props$format = props.format,\n format = _props$format === void 0 ? 'HH:mm:ss' : _props$format,\n prefixCls = props.prefixCls,\n active = props.active,\n operationRef = props.operationRef,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n _props$use12Hours = props.use12Hours,\n use12Hours = _props$use12Hours === void 0 ? false : _props$use12Hours,\n onSelect = props.onSelect,\n value = props.value;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var bodyOperationRef = React.useRef();\n // ======================= Keyboard =======================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeColumnIndex = _React$useState2[0],\n setActiveColumnIndex = _React$useState2[1];\n var columnsCount = countBoolean([showHour, showMinute, showSecond, use12Hours]);\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n setActiveColumnIndex((activeColumnIndex + diff + columnsCount) % columnsCount);\n },\n onUpDown: function onUpDown(diff) {\n if (activeColumnIndex === -1) {\n setActiveColumnIndex(0);\n } else if (bodyOperationRef.current) {\n bodyOperationRef.current.onUpDown(diff);\n }\n },\n onEnter: function onEnter() {\n onSelect(value || generateConfig.getNow(), 'key');\n setActiveColumnIndex(-1);\n }\n });\n },\n onBlur: function onBlur() {\n setActiveColumnIndex(-1);\n }\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(TimeHeader, _extends({}, props, {\n format: format,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(TimeBody, _extends({}, props, {\n prefixCls: prefixCls,\n activeColumnIndex: activeColumnIndex,\n operationRef: bodyOperationRef\n })));\n}\nexport default TimePanel;","import * as React from 'react';\nvar RangeContext = /*#__PURE__*/React.createContext({});\nexport default RangeContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isInRange } from '../utils/dateUtil';\nimport { getValue } from '../utils/miscUtil';\nexport default function useCellClassName(_ref) {\n var cellPrefixCls = _ref.cellPrefixCls,\n generateConfig = _ref.generateConfig,\n rangedValue = _ref.rangedValue,\n hoverRangedValue = _ref.hoverRangedValue,\n isInView = _ref.isInView,\n isSameCell = _ref.isSameCell,\n offsetCell = _ref.offsetCell,\n today = _ref.today,\n value = _ref.value;\n function getClassName(currentDate) {\n var _ref2;\n var prevDate = offsetCell(currentDate, -1);\n var nextDate = offsetCell(currentDate, 1);\n var rangeStart = getValue(rangedValue, 0);\n var rangeEnd = getValue(rangedValue, 1);\n var hoverStart = getValue(hoverRangedValue, 0);\n var hoverEnd = getValue(hoverRangedValue, 1);\n var isRangeHovered = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n function isRangeStart(date) {\n return isSameCell(rangeStart, date);\n }\n function isRangeEnd(date) {\n return isSameCell(rangeEnd, date);\n }\n var isHoverStart = isSameCell(hoverStart, currentDate);\n var isHoverEnd = isSameCell(hoverEnd, currentDate);\n var isHoverEdgeStart = (isRangeHovered || isHoverEnd) && (!isInView(prevDate) || isRangeEnd(prevDate));\n var isHoverEdgeEnd = (isRangeHovered || isHoverStart) && (!isInView(nextDate) || isRangeStart(nextDate));\n return _ref2 = {}, _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-view\"), isInView(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-in-range\"), isInRange(generateConfig, rangeStart, rangeEnd, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start\"), isRangeStart(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end\"), isRangeEnd(currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-single\"), isRangeStart(currentDate) && !rangeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-single\"), isRangeEnd(currentDate) && !rangeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-start-near-hover\"), isRangeStart(currentDate) && (isSameCell(prevDate, hoverStart) || isInRange(generateConfig, hoverStart, hoverEnd, prevDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-end-near-hover\"), isRangeEnd(currentDate) && (isSameCell(nextDate, hoverEnd) || isInRange(generateConfig, hoverStart, hoverEnd, nextDate))), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover\"), isRangeHovered), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-start\"), isHoverStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-end\"), isHoverEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start\"), isHoverEdgeStart), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end\"), isHoverEdgeEnd), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-start-near-range\"), isHoverEdgeStart && isSameCell(prevDate, rangeEnd)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-range-hover-edge-end-near-range\"), isHoverEdgeEnd && isSameCell(nextDate, rangeStart)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-today\"), isSameCell(today, currentDate)), _defineProperty(_ref2, \"\".concat(cellPrefixCls, \"-selected\"), isSameCell(value, currentDate)), _ref2;\n }\n return getClassName;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { WEEK_DAY_COUNT, getWeekStartDate, isSameDate, isSameMonth, formatValue } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nfunction DateBody(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n prefixColumn = props.prefixColumn,\n locale = props.locale,\n rowCount = props.rowCount,\n viewDate = props.viewDate,\n value = props.value,\n dateRender = props.dateRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var baseDate = getWeekStartDate(locale.locale, generateConfig, viewDate);\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var today = generateConfig.getNow();\n // ============================== Header ==============================\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\",\n \"aria-label\": \"empty cell\"\n }));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n // =============================== Body ===============================\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n today: today,\n value: value,\n generateConfig: generateConfig,\n rangedValue: prefixColumn ? null : rangedValue,\n hoverRangedValue: prefixColumn ? null : hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameDate(generateConfig, current, target);\n },\n isInView: function isInView(date) {\n return isSameMonth(generateConfig, date, viewDate);\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addDate(date, offset);\n }\n });\n var getCellNode = dateRender ? function (date) {\n return dateRender(date, today);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: rowCount,\n colNum: WEEK_DAY_COUNT,\n baseDate: baseDate,\n getCellNode: getCellNode,\n getCellText: generateConfig.getDate,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addDate,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM-DD',\n generateConfig: generateConfig\n });\n },\n headerCells: headerCells\n }));\n}\nexport default DateBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction DateHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextMonth = props.onNextMonth,\n onPrevMonth = props.onPrevMonth,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick,\n onMonthClick = props.onMonthClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var month = generateConfig.getMonth(viewDate);\n // =================== Month & Year ===================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n onClick: onYearClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"month\",\n onClick: onMonthClick,\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(viewDate, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onPrev: onPrevMonth,\n onNext: onNextMonth,\n onSuperNext: onNextYear\n }), monthYearNodes);\n}\nexport default DateHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DateBody from './DateBody';\nimport DateHeader from './DateHeader';\nimport { WEEK_DAY_COUNT } from '../../utils/dateUtil';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nvar DATE_ROW_COUNT = 6;\nfunction DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n keyboardConfig = props.keyboardConfig,\n active = props.active,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onViewDateChange = props.onViewDateChange,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, _objectSpread({\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addDate(value || viewDate, diff * WEEK_DAY_COUNT), 'key');\n },\n onPageUpDown: function onPageUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n }\n }, keyboardConfig));\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n var onMonthChange = function onMonthChange(diff) {\n var newDate = generateConfig.addMonth(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), active))\n }, /*#__PURE__*/React.createElement(DateHeader, _extends({}, props, {\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate\n // View Operation\n ,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onPrevMonth: function onPrevMonth() {\n onMonthChange(-1);\n },\n onNextMonth: function onNextMonth() {\n onMonthChange(1);\n },\n onMonthClick: function onMonthClick() {\n onPanelChange('month', viewDate);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(DateBody, _extends({}, props, {\n onSelect: function onSelect(date) {\n return _onSelect(date, 'mouse');\n },\n prefixCls: prefixCls,\n value: value,\n viewDate: viewDate,\n rowCount: DATE_ROW_COUNT\n })));\n}\nexport default DatePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport DatePanel from '../DatePanel';\nimport TimePanel from '../TimePanel';\nimport { tuple } from '../../utils/miscUtil';\nimport { setDateTime as setTime } from '../../utils/timeUtil';\nvar ACTIVE_PANEL = tuple('date', 'time');\nfunction DatetimePanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n disabledTime = props.disabledTime,\n showTime = props.showTime,\n onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activePanel = _React$useState2[0],\n setActivePanel = _React$useState2[1];\n var dateOperationRef = React.useRef({});\n var timeOperationRef = React.useRef({});\n var timeProps = _typeof(showTime) === 'object' ? _objectSpread({}, showTime) : {};\n // ======================= Keyboard =======================\n function getNextActive(offset) {\n var activeIndex = ACTIVE_PANEL.indexOf(activePanel) + offset;\n var nextActivePanel = ACTIVE_PANEL[activeIndex] || null;\n return nextActivePanel;\n }\n var onBlur = function onBlur(e) {\n if (timeOperationRef.current.onBlur) {\n timeOperationRef.current.onBlur(e);\n }\n setActivePanel(null);\n };\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n // Switch active panel\n if (event.which === KeyCode.TAB) {\n var nextActivePanel = getNextActive(event.shiftKey ? -1 : 1);\n setActivePanel(nextActivePanel);\n if (nextActivePanel) {\n event.preventDefault();\n }\n return true;\n }\n // Operate on current active panel\n if (activePanel) {\n var ref = activePanel === 'date' ? dateOperationRef : timeOperationRef;\n if (ref.current && ref.current.onKeyDown) {\n ref.current.onKeyDown(event);\n }\n return true;\n }\n // Switch first active panel if operate without panel\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN].includes(event.which)) {\n setActivePanel('date');\n return true;\n }\n return false;\n },\n onBlur: onBlur,\n onClose: onBlur\n };\n // ======================== Events ========================\n var onInternalSelect = function onInternalSelect(date, source) {\n var selectedDate = date;\n if (source === 'date' && !value && timeProps.defaultValue) {\n // Date with time defaultValue\n selectedDate = generateConfig.setHour(selectedDate, generateConfig.getHour(timeProps.defaultValue));\n selectedDate = generateConfig.setMinute(selectedDate, generateConfig.getMinute(timeProps.defaultValue));\n selectedDate = generateConfig.setSecond(selectedDate, generateConfig.getSecond(timeProps.defaultValue));\n } else if (source === 'time' && !value && defaultValue) {\n selectedDate = generateConfig.setYear(selectedDate, generateConfig.getYear(defaultValue));\n selectedDate = generateConfig.setMonth(selectedDate, generateConfig.getMonth(defaultValue));\n selectedDate = generateConfig.setDate(selectedDate, generateConfig.getDate(defaultValue));\n }\n if (onSelect) {\n onSelect(selectedDate, 'mouse');\n }\n };\n // ======================== Render ========================\n var disabledTimes = disabledTime ? disabledTime(value || null) : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, _defineProperty({}, \"\".concat(panelPrefixCls, \"-active\"), activePanel))\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n operationRef: dateOperationRef,\n active: activePanel === 'date',\n onSelect: function onSelect(date) {\n onInternalSelect(setTime(generateConfig, date, !value && _typeof(showTime) === 'object' ? showTime.defaultValue : null), 'date');\n }\n })), /*#__PURE__*/React.createElement(TimePanel, _extends({}, props, {\n format: undefined\n }, timeProps, disabledTimes, {\n disabledTime: null,\n defaultValue: undefined,\n operationRef: timeOperationRef,\n active: activePanel === 'time',\n onSelect: function onSelect(date) {\n onInternalSelect(date, 'time');\n }\n })));\n}\nexport default DatetimePanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport DatePanel from '../DatePanel';\nimport { isSameWeek } from '../../utils/dateUtil';\nfunction WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value;\n // Render additional column\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var prefixColumn = function prefixColumn(date) {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"))\n }, generateConfig.locale.getWeek(locale.locale, date));\n };\n // Add row className\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(date) {\n return classNames(rowPrefixCls, _defineProperty({}, \"\".concat(rowPrefixCls, \"-selected\"), isSameWeek(generateConfig, locale.locale, value, date)));\n };\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n panelName: \"week\",\n prefixColumn: prefixColumn,\n rowClassName: rowClassName,\n keyboardConfig: {\n onLeftRight: null\n }\n }));\n}\nexport default WeekPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction MonthHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default MonthHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameMonth } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nexport var MONTH_COL_COUNT = 3;\nvar MONTH_ROW_COUNT = 4;\nfunction MonthBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig,\n monthCellRender = props.monthCellRender;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameMonth(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset);\n }\n });\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var baseMonth = generateConfig.setMonth(viewDate, 0);\n var getCellNode = monthCellRender ? function (date) {\n return monthCellRender(date, locale);\n } : undefined;\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: MONTH_ROW_COUNT,\n colNum: MONTH_COL_COUNT,\n baseDate: baseMonth,\n getCellNode: getCellNode,\n getCellText: function getCellText(date) {\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[generateConfig.getMonth(date)];\n },\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addMonth,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-MM',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default MonthBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport MonthHeader from './MonthHeader';\nimport MonthBody, { MONTH_COL_COUNT } from './MonthBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nfunction MonthPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange('date', value || viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(MonthHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(MonthBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n onPanelChange('date', date);\n }\n })));\n}\nexport default MonthPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport PanelContext from '../../PanelContext';\nimport { formatValue } from '../../utils/dateUtil';\nfunction QuarterHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n viewDate = props.viewDate,\n onNextYear = props.onNextYear,\n onPrevYear = props.onPrevYear,\n onYearClick = props.onYearClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevYear,\n onSuperNext: onNextYear\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onYearClick,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(viewDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n })));\n}\nexport default QuarterHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { formatValue, isSameQuarter } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport PanelBody from '../PanelBody';\nexport var QUARTER_COL_COUNT = 4;\nvar QUARTER_ROW_COUNT = 1;\nfunction QuarterBody(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n value = props.value,\n viewDate = props.viewDate,\n generateConfig = props.generateConfig;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var getCellClassName = useCellClassName({\n cellPrefixCls: cellPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameQuarter(generateConfig, current, target);\n },\n isInView: function isInView() {\n return true;\n },\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n }\n });\n var baseQuarter = generateConfig.setDate(generateConfig.setMonth(viewDate, 0), 1);\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: QUARTER_ROW_COUNT,\n colNum: QUARTER_COL_COUNT,\n baseDate: baseQuarter,\n getCellText: function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.quarterFormat || '[Q]Q',\n generateConfig: generateConfig\n });\n },\n getCellClassName: getCellClassName,\n getCellDate: function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n },\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY-[Q]Q',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default QuarterBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport QuarterHeader from './QuarterHeader';\nimport QuarterBody from './QuarterBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nfunction QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n onPanelChange = props.onPanelChange,\n _onSelect = props.onSelect;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addMonth(value || viewDate, diff * 3), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onYearChange = function onYearChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(QuarterHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevYear: function onPrevYear() {\n onYearChange(-1);\n },\n onNextYear: function onNextYear() {\n onYearChange(1);\n },\n onYearClick: function onYearClick() {\n onPanelChange('year', viewDate);\n }\n })), /*#__PURE__*/React.createElement(QuarterBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default QuarterPanel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Header from '../Header';\nimport { YEAR_DECADE_COUNT } from '.';\nimport PanelContext from '../../PanelContext';\nfunction YearHeader(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n viewDate = props.viewDate,\n onPrevDecade = props.onPrevDecade,\n onNextDecade = props.onNextDecade,\n onDecadeClick = props.onDecadeClick;\n var _React$useContext = React.useContext(PanelContext),\n hideHeader = _React$useContext.hideHeader;\n if (hideHeader) {\n return null;\n }\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n return /*#__PURE__*/React.createElement(Header, _extends({}, props, {\n prefixCls: headerPrefixCls,\n onSuperPrev: onPrevDecade,\n onSuperNext: onNextDecade\n }), /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: onDecadeClick,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, startYear, \"-\", endYear));\n}\nexport default YearHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { YEAR_DECADE_COUNT } from '.';\nimport useCellClassName from '../../hooks/useCellClassName';\nimport { formatValue, isSameYear } from '../../utils/dateUtil';\nimport RangeContext from '../../RangeContext';\nimport PanelBody from '../PanelBody';\nexport var YEAR_COL_COUNT = 3;\nvar YEAR_ROW_COUNT = 4;\nfunction YearBody(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n viewDate = props.viewDate,\n locale = props.locale,\n generateConfig = props.generateConfig;\n var _React$useContext = React.useContext(RangeContext),\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var yearPrefixCls = \"\".concat(prefixCls, \"-cell\");\n // =============================== Year ===============================\n var yearNumber = generateConfig.getYear(viewDate);\n var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;\n var endYear = startYear + YEAR_DECADE_COUNT - 1;\n var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));\n var isInView = function isInView(date) {\n var currentYearNumber = generateConfig.getYear(date);\n return startYear <= currentYearNumber && currentYearNumber <= endYear;\n };\n var getCellClassName = useCellClassName({\n cellPrefixCls: yearPrefixCls,\n value: value,\n generateConfig: generateConfig,\n rangedValue: rangedValue,\n hoverRangedValue: hoverRangedValue,\n isSameCell: function isSameCell(current, target) {\n return isSameYear(generateConfig, current, target);\n },\n isInView: isInView,\n offsetCell: function offsetCell(date, offset) {\n return generateConfig.addYear(date, offset);\n }\n });\n return /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n rowNum: YEAR_ROW_COUNT,\n colNum: YEAR_COL_COUNT,\n baseDate: baseYear,\n getCellText: generateConfig.getYear,\n getCellClassName: getCellClassName,\n getCellDate: generateConfig.addYear,\n titleCell: function titleCell(date) {\n return formatValue(date, {\n locale: locale,\n format: 'YYYY',\n generateConfig: generateConfig\n });\n }\n }));\n}\nexport default YearBody;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport YearHeader from './YearHeader';\nimport YearBody, { YEAR_COL_COUNT } from './YearBody';\nimport { createKeyDownHandler } from '../../utils/uiUtil';\nexport var YEAR_DECADE_COUNT = 10;\nfunction YearPanel(props) {\n var prefixCls = props.prefixCls,\n operationRef = props.operationRef,\n onViewDateChange = props.onViewDateChange,\n generateConfig = props.generateConfig,\n value = props.value,\n viewDate = props.viewDate,\n sourceMode = props.sourceMode,\n _onSelect = props.onSelect,\n onPanelChange = props.onPanelChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n // ======================= Keyboard =======================\n operationRef.current = {\n onKeyDown: function onKeyDown(event) {\n return createKeyDownHandler(event, {\n onLeftRight: function onLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff), 'key');\n },\n onCtrlLeftRight: function onCtrlLeftRight(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');\n },\n onUpDown: function onUpDown(diff) {\n _onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');\n },\n onEnter: function onEnter() {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);\n }\n });\n }\n };\n // ==================== View Operation ====================\n var onDecadeChange = function onDecadeChange(diff) {\n var newDate = generateConfig.addYear(viewDate, diff * 10);\n onViewDateChange(newDate);\n onPanelChange(null, newDate);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(YearHeader, _extends({}, props, {\n prefixCls: prefixCls,\n onPrevDecade: function onPrevDecade() {\n onDecadeChange(-1);\n },\n onNextDecade: function onNextDecade() {\n onDecadeChange(1);\n },\n onDecadeClick: function onDecadeClick() {\n onPanelChange('decade', viewDate);\n }\n })), /*#__PURE__*/React.createElement(YearBody, _extends({}, props, {\n prefixCls: prefixCls,\n onSelect: function onSelect(date) {\n onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);\n _onSelect(date, 'mouse');\n }\n })));\n}\nexport default YearPanel;","import * as React from 'react';\nexport default function getExtraFooter(prefixCls, mode, renderExtraFooter) {\n if (!renderExtraFooter) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, renderExtraFooter(mode));\n}","import * as React from 'react';\nexport default function getRanges(_ref) {\n var prefixCls = _ref.prefixCls,\n _ref$rangeList = _ref.rangeList,\n rangeList = _ref$rangeList === void 0 ? [] : _ref$rangeList,\n _ref$components = _ref.components,\n components = _ref$components === void 0 ? {} : _ref$components,\n needConfirmButton = _ref.needConfirmButton,\n onNow = _ref.onNow,\n onOk = _ref.onOk,\n okDisabled = _ref.okDisabled,\n showNow = _ref.showNow,\n locale = _ref.locale;\n var presetNode;\n var okNode;\n if (rangeList.length) {\n var Item = components.rangeItem || 'span';\n presetNode = /*#__PURE__*/React.createElement(React.Fragment, null, rangeList.map(function (_ref2) {\n var label = _ref2.label,\n onClick = _ref2.onClick,\n onMouseEnter = _ref2.onMouseEnter,\n onMouseLeave = _ref2.onMouseLeave;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: label,\n className: \"\".concat(prefixCls, \"-preset\")\n }, /*#__PURE__*/React.createElement(Item, {\n onClick: onClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }, label));\n }));\n }\n if (needConfirmButton) {\n var Button = components.button || 'button';\n if (onNow && !presetNode && showNow !== false) {\n presetNode = /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-now\")\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: \"\".concat(prefixCls, \"-now-btn\"),\n onClick: onNow\n }, locale.now));\n }\n okNode = needConfirmButton && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: okDisabled,\n onClick: onOk\n }, locale.ok));\n }\n if (!presetNode && !okNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Logic:\n * When `mode` === `picker`,\n * click will trigger `onSelect` (if value changed trigger `onChange` also).\n * Panel change will not trigger `onSelect` but trigger `onPanelChange`\n */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TimePanel from './panels/TimePanel';\nimport DatetimePanel from './panels/DatetimePanel';\nimport DatePanel from './panels/DatePanel';\nimport WeekPanel from './panels/WeekPanel';\nimport MonthPanel from './panels/MonthPanel';\nimport QuarterPanel from './panels/QuarterPanel';\nimport YearPanel from './panels/YearPanel';\nimport DecadePanel from './panels/DecadePanel';\nimport { WEEK_DAY_COUNT, isEqual } from './utils/dateUtil';\nimport PanelContext from './PanelContext';\nimport { PickerModeMap } from './utils/uiUtil';\nimport { MONTH_COL_COUNT } from './panels/MonthPanel/MonthBody';\nimport RangeContext from './RangeContext';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport { getLowerBoundTime, setDateTime, setTime } from './utils/timeUtil';\n// Calendar picker type\nvar CALENDAR_PANEL_MODE = ['date', 'month'];\nfunction PickerPanel(props) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n className = props.className,\n style = props.style,\n locale = props.locale,\n generateConfig = props.generateConfig,\n value = props.value,\n defaultValue = props.defaultValue,\n pickerValue = props.pickerValue,\n defaultPickerValue = props.defaultPickerValue,\n disabledDate = props.disabledDate,\n mode = props.mode,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n showNow = props.showNow,\n showTime = props.showTime,\n showToday = props.showToday,\n renderExtraFooter = props.renderExtraFooter,\n hideHeader = props.hideHeader,\n onSelect = props.onSelect,\n onChange = props.onChange,\n onPanelChange = props.onPanelChange,\n onMouseDown = props.onMouseDown,\n onPickerValueChange = props.onPickerValueChange,\n _onOk = props.onOk,\n components = props.components,\n direction = props.direction,\n _props$hourStep = props.hourStep,\n hourStep = _props$hourStep === void 0 ? 1 : _props$hourStep,\n _props$minuteStep = props.minuteStep,\n minuteStep = _props$minuteStep === void 0 ? 1 : _props$minuteStep,\n _props$secondStep = props.secondStep,\n secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n if (process.env.NODE_ENV !== 'production') {\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `value`.');\n warning(!value || generateConfig.isValidate(value), 'Invalidate date pass to `defaultValue`.');\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n }\n // ============================ State =============================\n var panelContext = React.useContext(PanelContext);\n var operationRef = panelContext.operationRef,\n panelDivRef = panelContext.panelRef,\n onContextSelect = panelContext.onSelect,\n hideRanges = panelContext.hideRanges,\n defaultOpenValue = panelContext.defaultOpenValue;\n var _React$useContext = React.useContext(RangeContext),\n inRange = _React$useContext.inRange,\n panelPosition = _React$useContext.panelPosition,\n rangedValue = _React$useContext.rangedValue,\n hoverRangedValue = _React$useContext.hoverRangedValue;\n var panelRef = React.useRef({});\n // Handle init logic\n var initRef = React.useRef(true);\n // Value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(val) {\n if (!val && defaultOpenValue && picker === 'time') {\n return defaultOpenValue;\n }\n return val;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n // View date control\n var _useMergedState3 = useMergedState(null, {\n value: pickerValue,\n defaultValue: defaultPickerValue || mergedValue,\n postState: function postState(date) {\n var now = generateConfig.getNow();\n if (!date) {\n return now;\n }\n // When value is null and set showTime\n if (!mergedValue && showTime) {\n var defaultDateObject = _typeof(showTime) === 'object' ? showTime.defaultValue : defaultValue;\n return setDateTime(generateConfig, Array.isArray(date) ? date[0] : date, defaultDateObject || now);\n }\n return Array.isArray(date) ? date[0] : date;\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n viewDate = _useMergedState4[0],\n setInnerViewDate = _useMergedState4[1];\n var setViewDate = function setViewDate(date) {\n setInnerViewDate(date);\n if (onPickerValueChange) {\n onPickerValueChange(date);\n }\n };\n // Panel control\n var getInternalNextMode = function getInternalNextMode(nextMode) {\n var getNextMode = PickerModeMap[picker];\n if (getNextMode) {\n return getNextMode(nextMode);\n }\n return nextMode;\n };\n // Save panel is changed from which panel\n var _useMergedState5 = useMergedState(function () {\n if (picker === 'time') {\n return 'time';\n }\n return getInternalNextMode('date');\n }, {\n value: mode\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedMode = _useMergedState6[0],\n setInnerMode = _useMergedState6[1];\n React.useEffect(function () {\n setInnerMode(picker);\n }, [picker]);\n var _React$useState = React.useState(function () {\n return mergedMode;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n sourceMode = _React$useState2[0],\n setSourceMode = _React$useState2[1];\n var onInternalPanelChange = function onInternalPanelChange(newMode, viewValue) {\n var nextMode = getInternalNextMode(newMode || mergedMode);\n setSourceMode(mergedMode);\n setInnerMode(nextMode);\n if (onPanelChange && (mergedMode !== nextMode || isEqual(generateConfig, viewDate, viewDate))) {\n onPanelChange(viewValue, nextMode);\n }\n };\n var triggerSelect = function triggerSelect(date, type) {\n var forceTriggerSelect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (mergedMode === picker || forceTriggerSelect) {\n setInnerValue(date);\n if (onSelect) {\n onSelect(date);\n }\n if (onContextSelect) {\n onContextSelect(date, type);\n }\n if (onChange && !isEqual(generateConfig, date, mergedValue) && !(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date))) {\n onChange(date);\n }\n }\n };\n var isSelectable = function isSelectable(key) {\n if (CALENDAR_PANEL_MODE.includes(mergedMode)) {\n var date;\n var operationFnc;\n var isDateMode = mergedMode === 'date';\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n operationFnc = isDateMode ? generateConfig.addMonth : generateConfig.addYear;\n } else {\n operationFnc = isDateMode ? generateConfig.addDate : generateConfig.addMonth;\n }\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.PAGE_UP:\n date = operationFnc(viewDate, -1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.PAGE_DOWN:\n date = operationFnc(viewDate, 1);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n date = operationFnc(viewDate, Number(\"\".concat(key === KeyCode.UP ? '-' : '').concat(isDateMode ? WEEK_DAY_COUNT : MONTH_COL_COUNT)));\n break;\n }\n if (date) {\n return !(disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date));\n }\n }\n return true;\n };\n // ========================= Interactive ==========================\n var onInternalKeyDown = function onInternalKeyDown(e) {\n if (panelRef.current && panelRef.current.onKeyDown) {\n var selectable = true;\n var which = e.which;\n if ([KeyCode.LEFT, KeyCode.RIGHT, KeyCode.UP, KeyCode.DOWN, KeyCode.PAGE_UP, KeyCode.PAGE_DOWN, KeyCode.ENTER].includes(which)) {\n e.preventDefault();\n if (which !== KeyCode.ENTER && tabIndex === 0) {\n selectable = isSelectable(which);\n }\n }\n // Cannot use keyboard to select disabled date\n if (selectable) {\n return panelRef.current.onKeyDown(e);\n }\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Panel not correct handle keyDown event. Please help to fire issue about this.');\n return false;\n }\n /* eslint-enable no-lone-blocks */\n };\n\n var onInternalBlur = function onInternalBlur(e) {\n if (panelRef.current && panelRef.current.onBlur) {\n panelRef.current.onBlur(e);\n }\n };\n if (operationRef && panelPosition !== 'right') {\n operationRef.current = {\n onKeyDown: onInternalKeyDown,\n onClose: function onClose() {\n if (panelRef.current && panelRef.current.onClose) {\n panelRef.current.onClose();\n }\n }\n };\n }\n // ============================ Effect ============================\n React.useEffect(function () {\n if (value && !initRef.current) {\n setInnerViewDate(value);\n }\n }, [value]);\n React.useEffect(function () {\n initRef.current = false;\n }, []);\n // ============================ Panels ============================\n var panelNode;\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n operationRef: panelRef,\n prefixCls: prefixCls,\n viewDate: viewDate,\n value: mergedValue,\n onViewDateChange: setViewDate,\n sourceMode: sourceMode,\n onPanelChange: onInternalPanelChange,\n disabledDate: disabledDate\n });\n delete pickerProps.onChange;\n delete pickerProps.onSelect;\n switch (mergedMode) {\n case 'decade':\n panelNode = /*#__PURE__*/React.createElement(DecadePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'year':\n panelNode = /*#__PURE__*/React.createElement(YearPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'month':\n panelNode = /*#__PURE__*/React.createElement(MonthPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'quarter':\n panelNode = /*#__PURE__*/React.createElement(QuarterPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'week':\n panelNode = /*#__PURE__*/React.createElement(WeekPanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n case 'time':\n delete pickerProps.showTime;\n panelNode = /*#__PURE__*/React.createElement(TimePanel, _extends({}, pickerProps, _typeof(showTime) === 'object' ? showTime : null, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n break;\n default:\n if (showTime) {\n panelNode = /*#__PURE__*/React.createElement(DatetimePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n } else {\n panelNode = /*#__PURE__*/React.createElement(DatePanel, _extends({}, pickerProps, {\n onSelect: function onSelect(date, type) {\n setViewDate(date);\n triggerSelect(date, type);\n }\n }));\n }\n }\n // ============================ Footer ============================\n var extraFooter;\n var rangesNode;\n var onNow = function onNow() {\n var now = generateConfig.getNow();\n var lowerBoundTime = getLowerBoundTime(generateConfig.getHour(now), generateConfig.getMinute(now), generateConfig.getSecond(now), isHourStepValid ? hourStep : 1, isMinuteStepValid ? minuteStep : 1, isSecondStepValid ? secondStep : 1);\n var adjustedNow = setTime(generateConfig, now, lowerBoundTime[0],\n // hour\n lowerBoundTime[1],\n // minute\n lowerBoundTime[2]);\n triggerSelect(adjustedNow, 'submit');\n };\n if (!hideRanges) {\n extraFooter = getExtraFooter(prefixCls, mergedMode, renderExtraFooter);\n rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !mergedValue || disabledDate && disabledDate(mergedValue),\n locale: locale,\n showNow: showNow,\n onNow: needConfirmButton && onNow,\n onOk: function onOk() {\n if (mergedValue) {\n triggerSelect(mergedValue, 'submit', true);\n if (_onOk) {\n _onOk(mergedValue);\n }\n }\n }\n });\n }\n var todayNode;\n if (showToday && mergedMode === 'date' && picker === 'date' && !showTime) {\n var now = generateConfig.getNow();\n var todayCls = \"\".concat(prefixCls, \"-today-btn\");\n var disabled = disabledDate && disabledDate(now);\n todayNode = /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(todayCls, disabled && \"\".concat(todayCls, \"-disabled\")),\n \"aria-disabled\": disabled,\n onClick: function onClick() {\n if (!disabled) {\n triggerSelect(now, 'mouse', true);\n }\n }\n }, locale.today);\n }\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: _objectSpread(_objectSpread({}, panelContext), {}, {\n mode: mergedMode,\n hideHeader: 'hideHeader' in props ? hideHeader : panelContext.hideHeader,\n hidePrevBtn: inRange && panelPosition === 'right',\n hideNextBtn: inRange && panelPosition === 'left'\n })\n }, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: tabIndex,\n className: classNames(\"\".concat(prefixCls, \"-panel\"), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range\"), rangedValue && rangedValue[0] && rangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-has-range-hover\"), hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1]), _defineProperty(_classNames, \"\".concat(prefixCls, \"-panel-rtl\"), direction === 'rtl'), _classNames)),\n style: style,\n onKeyDown: onInternalKeyDown,\n onBlur: onInternalBlur,\n onMouseDown: onMouseDown,\n ref: panelDivRef\n }, panelNode, extraFooter || rangesNode || todayNode ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraFooter, rangesNode, todayNode) : null));\n}\nexport default PickerPanel;\n/* eslint-enable */","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Trigger from 'rc-trigger';\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n visible = _ref.visible,\n dropdownClassName = _ref.dropdownClassName,\n dropdownAlign = _ref.dropdownAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n popupPlacement = _ref.popupPlacement,\n direction = _ref.direction;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var getPopupPlacement = function getPopupPlacement() {\n if (popupPlacement !== undefined) {\n return popupPlacement;\n }\n return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n };\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: [],\n popupPlacement: getPopupPlacement(),\n builtinPlacements: BUILT_IN_PLACEMENTS,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: dropdownAlign,\n popupVisible: visible,\n popupClassName: classNames(dropdownClassName, (_classNames = {}, _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-range\"), range), _defineProperty(_classNames, \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl'), _classNames)),\n popupStyle: popupStyle,\n getPopupContainer: getPopupContainer\n }, children);\n}\nexport default PickerTrigger;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { addGlobalMouseDownEvent, getTargetFromEvent } from '../utils/uiUtil';\nexport default function usePickerInput(_ref) {\n var open = _ref.open,\n value = _ref.value,\n isClickOutside = _ref.isClickOutside,\n triggerOpen = _ref.triggerOpen,\n forwardKeyDown = _ref.forwardKeyDown,\n _onKeyDown = _ref.onKeyDown,\n blurToCancel = _ref.blurToCancel,\n onSubmit = _ref.onSubmit,\n onCancel = _ref.onCancel,\n _onFocus = _ref.onFocus,\n _onBlur = _ref.onBlur,\n currentFocusedKey = _ref.currentFocusedKey,\n _ref$key = _ref.key,\n key = _ref$key === void 0 ? 'start' : _ref$key;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n typing = _useState2[0],\n setTyping = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n focused = _useState4[0],\n setFocused = _useState4[1];\n var delayBlurTimer = useRef();\n /**\n * We will prevent blur to handle open event when user click outside,\n * since this will repeat trigger `onOpenChange` event.\n */\n var preventBlurRef = useRef(false);\n var valueChangedRef = useRef(false);\n var preventDefaultRef = useRef(false);\n var inputProps = {\n onMouseDown: function onMouseDown() {\n setTyping(true);\n triggerOpen(true);\n },\n onKeyDown: function onKeyDown(e) {\n var preventDefault = function preventDefault() {\n preventDefaultRef.current = true;\n };\n _onKeyDown(e, preventDefault);\n if (preventDefaultRef.current) return;\n switch (e.which) {\n case KeyCode.ENTER:\n {\n if (!open) {\n triggerOpen(true);\n } else if (onSubmit() !== false) {\n setTyping(true);\n }\n e.preventDefault();\n return;\n }\n case KeyCode.TAB:\n {\n if (typing && open && !e.shiftKey) {\n setTyping(false);\n e.preventDefault();\n } else if (!typing && open) {\n if (!forwardKeyDown(e) && e.shiftKey) {\n setTyping(true);\n e.preventDefault();\n }\n }\n return;\n }\n case KeyCode.ESC:\n {\n setTyping(true);\n onCancel();\n return;\n }\n }\n if (!open && ![KeyCode.SHIFT].includes(e.which)) {\n triggerOpen(true);\n } else if (!typing) {\n // Let popup panel handle keyboard\n forwardKeyDown(e);\n }\n },\n onFocus: function onFocus(e) {\n setTyping(true);\n setFocused(true);\n if (currentFocusedKey) {\n currentFocusedKey.current = key;\n }\n clearTimeout(delayBlurTimer.current);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n onBlur: function onBlur(e) {\n if (preventBlurRef.current || !isClickOutside(document.activeElement)) {\n preventBlurRef.current = false;\n return;\n }\n if (blurToCancel) {\n setTimeout(function () {\n var _document = document,\n activeElement = _document.activeElement;\n while (activeElement && activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n if (isClickOutside(activeElement)) {\n onCancel();\n }\n }, 0);\n } else if (open) {\n triggerOpen(false);\n if (valueChangedRef.current) {\n onSubmit();\n }\n }\n setFocused(false);\n if (currentFocusedKey) {\n currentFocusedKey.current = '';\n // Delay to prevent 'range' focus transitions from firing resulting in incorrect out-of-focus events\n delayBlurTimer.current = setTimeout(function () {\n // Prevent the 'blur' event from firing when there is currently a focused input\n if (currentFocusedKey.current) {\n return;\n }\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }, 100);\n } else {\n _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);\n }\n }\n };\n // check if value changed\n useEffect(function () {\n valueChangedRef.current = false;\n }, [open]);\n useEffect(function () {\n valueChangedRef.current = true;\n }, [value]);\n // Global click handler\n useEffect(function () {\n return addGlobalMouseDownEvent(function (e) {\n var target = getTargetFromEvent(e);\n var clickedOutside = isClickOutside(target);\n if (open) {\n if (!clickedOutside) {\n preventBlurRef.current = true;\n // Always set back in case `onBlur` prevented by user\n requestAnimationFrame(function () {\n preventBlurRef.current = false;\n });\n } else if (!focused || clickedOutside) {\n triggerOpen(false);\n }\n } else if (focused && !clickedOutside) {\n preventBlurRef.current = true;\n }\n });\n });\n useEffect(function () {\n return function () {\n return clearTimeout(delayBlurTimer.current);\n };\n }, []);\n return [inputProps, {\n focused: focused,\n typing: typing\n }];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useTextValueMapping(_ref) {\n var valueTexts = _ref.valueTexts,\n onTextChange = _ref.onTextChange;\n var _React$useState = React.useState(''),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n text = _React$useState2[0],\n setInnerText = _React$useState2[1];\n var valueTextsRef = React.useRef([]);\n valueTextsRef.current = valueTexts;\n function triggerTextChange(value) {\n setInnerText(value);\n onTextChange(value);\n }\n function resetText() {\n setInnerText(valueTextsRef.current[0]);\n }\n React.useEffect(function () {\n if (valueTexts.every(function (valText) {\n return valText !== text;\n })) {\n resetText();\n }\n }, [valueTexts.join('||')]);\n return [text, triggerTextChange, resetText];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport shallowEqual from \"rc-util/es/isEqual\";\nimport { formatValue, isEqual } from '../utils/dateUtil';\nexport default function useValueTexts(value, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n return useMemo(function () {\n if (!value) {\n return [[''], ''];\n }\n // We will convert data format back to first format\n var firstValueText = '';\n var fullValueTexts = [];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = formatList[i];\n var formatStr = formatValue(value, {\n generateConfig: generateConfig,\n locale: locale,\n format: format\n });\n fullValueTexts.push(formatStr);\n if (i === 0) {\n firstValueText = formatStr;\n }\n }\n return [fullValueTexts, firstValueText];\n }, [value, formatList, locale], function (prev, next) {\n return (\n // Not Same Date\n !isEqual(generateConfig, prev[0], next[0]) ||\n // Not Same format\n !shallowEqual(prev[1], next[1], true) ||\n // Not Same locale\n !shallowEqual(prev[2], next[2], true)\n );\n });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport useValueTexts from './useValueTexts';\nexport default function useHoverValue(valueText, _ref) {\n var formatList = _ref.formatList,\n generateConfig = _ref.generateConfig,\n locale = _ref.locale;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n internalSetValue = _useState2[1];\n var raf = useRef(null);\n function setValue(val) {\n var immediately = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n cancelAnimationFrame(raf.current);\n if (immediately) {\n internalSetValue(val);\n return;\n }\n raf.current = requestAnimationFrame(function () {\n internalSetValue(val);\n });\n }\n var _useValueTexts = useValueTexts(value, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n firstText = _useValueTexts2[1];\n function onEnter(date) {\n setValue(date);\n }\n function onLeave() {\n var immediately = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n setValue(null, immediately);\n }\n useEffect(function () {\n onLeave(true);\n }, [valueText]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, []);\n return [firstText, onEnter, onLeave];\n}","import warning from \"rc-util/es/warning\";\nexport function legacyPropsWarning(props) {\n var picker = props.picker,\n disabledHours = props.disabledHours,\n disabledMinutes = props.disabledMinutes,\n disabledSeconds = props.disabledSeconds;\n if (picker === 'time' && (disabledHours || disabledMinutes || disabledSeconds)) {\n warning(false, \"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.\");\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Removed:\n * - getCalendarContainer: use `getPopupContainer` instead\n * - onOk\n *\n * New Feature:\n * - picker\n * - allowEmpty\n * - selectable\n *\n * Tips: Should add faq about `datetime` mode with `defaultValue`\n */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerPanel from './PickerPanel';\nimport PickerTrigger from './PickerTrigger';\nimport { formatValue, isEqual, parseValue } from './utils/dateUtil';\nimport getDataOrAriaProps, { toArray } from './utils/miscUtil';\nimport PanelContext from './PanelContext';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport usePickerInput from './hooks/usePickerInput';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport useValueTexts from './hooks/useValueTexts';\nimport useHoverValue from './hooks/useHoverValue';\nimport { legacyPropsWarning } from './utils/warnUtil';\nfunction InnerPicker(props) {\n var _classNames2;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n id = props.id,\n tabIndex = props.tabIndex,\n style = props.style,\n className = props.className,\n dropdownClassName = props.dropdownClassName,\n dropdownAlign = props.dropdownAlign,\n popupStyle = props.popupStyle,\n transitionName = props.transitionName,\n generateConfig = props.generateConfig,\n locale = props.locale,\n inputReadOnly = props.inputReadOnly,\n allowClear = props.allowClear,\n autoFocus = props.autoFocus,\n showTime = props.showTime,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n format = props.format,\n use12Hours = props.use12Hours,\n value = props.value,\n defaultValue = props.defaultValue,\n open = props.open,\n defaultOpen = props.defaultOpen,\n defaultOpenValue = props.defaultOpenValue,\n suffixIcon = props.suffixIcon,\n clearIcon = props.clearIcon,\n disabled = props.disabled,\n disabledDate = props.disabledDate,\n placeholder = props.placeholder,\n getPopupContainer = props.getPopupContainer,\n pickerRef = props.pickerRef,\n panelRender = props.panelRender,\n onChange = props.onChange,\n onOpenChange = props.onOpenChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onContextMenu = props.onContextMenu,\n onClick = props.onClick,\n _onKeyDown = props.onKeyDown,\n _onSelect = props.onSelect,\n direction = props.direction,\n _props$autoComplete = props.autoComplete,\n autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete,\n inputRender = props.inputRender;\n var inputRef = React.useRef(null);\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n // ============================= State =============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n // Panel ref\n var panelDivRef = React.useRef(null);\n var inputDivRef = React.useRef(null);\n var containerRef = React.useRef(null);\n // Real value\n var _useMergedState = useMergedState(null, {\n value: value,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n // Selected value\n var _React$useState = React.useState(mergedValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n selectedValue = _React$useState2[0],\n setSelectedValue = _React$useState2[1];\n // Operation ref\n var operationRef = React.useRef(null);\n // Open\n var _useMergedState3 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return disabled ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedOpen = _useMergedState4[0],\n triggerInnerOpen = _useMergedState4[1];\n // ============================= Text ==============================\n var _useValueTexts = useValueTexts(selectedValue, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n valueTexts = _useValueTexts2[0],\n firstValueText = _useValueTexts2[1];\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: valueTexts,\n onTextChange: function onTextChange(newText) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n if (inputDate && (!disabledDate || !disabledDate(inputDate))) {\n setSelectedValue(inputDate);\n }\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n text = _useTextValueMapping2[0],\n triggerTextChange = _useTextValueMapping2[1],\n resetText = _useTextValueMapping2[2];\n // ============================ Trigger ============================\n var triggerChange = function triggerChange(newValue) {\n setSelectedValue(newValue);\n setInnerValue(newValue);\n if (onChange && !isEqual(generateConfig, mergedValue, newValue)) {\n onChange(newValue, newValue ? formatValue(newValue, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '');\n }\n };\n var triggerOpen = function triggerOpen(newOpen) {\n if (disabled && newOpen) {\n return;\n }\n triggerInnerOpen(newOpen);\n };\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n var onInternalClick = function onInternalClick() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, args);\n if (inputRef.current) {\n inputRef.current.focus();\n triggerOpen(true);\n }\n };\n // ============================= Input =============================\n var _usePickerInput = usePickerInput({\n blurToCancel: needConfirmButton,\n open: mergedOpen,\n value: text,\n triggerOpen: triggerOpen,\n forwardKeyDown: forwardKeyDown,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, inputDivRef.current, containerRef.current], target);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue)) {\n return false;\n }\n triggerChange(selectedValue);\n triggerOpen(false);\n resetText();\n return true;\n },\n onCancel: function onCancel() {\n triggerOpen(false);\n setSelectedValue(mergedValue);\n resetText();\n },\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n },\n onFocus: onFocus,\n onBlur: onBlur\n }),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n inputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n focused = _usePickerInput2$.focused,\n typing = _usePickerInput2$.typing;\n // ============================= Sync ==============================\n // Close should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!valueTexts.length || valueTexts[0] === '') {\n triggerTextChange('');\n } else if (firstValueText !== text) {\n resetText();\n }\n }\n }, [mergedOpen, valueTexts]);\n // Change picker should sync back with text value\n React.useEffect(function () {\n if (!mergedOpen) {\n resetText();\n }\n }, [picker]);\n // Sync innerValue with control mode\n React.useEffect(function () {\n // Sync select value\n setSelectedValue(mergedValue);\n }, [mergedValue]);\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n },\n blur: function blur() {\n if (inputRef.current) {\n inputRef.current.blur();\n }\n }\n };\n }\n var _useHoverValue = useHoverValue(text, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n hoverValue = _useHoverValue2[0],\n onEnter = _useHoverValue2[1],\n onLeave = _useHoverValue2[2];\n // ============================= Panel =============================\n var panelProps = _objectSpread(_objectSpread({}, props), {}, {\n className: undefined,\n style: undefined,\n pickerValue: undefined,\n onPickerValueChange: undefined,\n onChange: null\n });\n var panelNode = /*#__PURE__*/React.createElement(PickerPanel, _extends({}, panelProps, {\n generateConfig: generateConfig,\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), !typing)),\n value: selectedValue,\n locale: locale,\n tabIndex: -1,\n onSelect: function onSelect(date) {\n _onSelect === null || _onSelect === void 0 ? void 0 : _onSelect(date);\n setSelectedValue(date);\n },\n direction: direction,\n onPanelChange: function onPanelChange(viewDate, mode) {\n var onPanelChange = props.onPanelChange;\n onLeave(true);\n onPanelChange === null || onPanelChange === void 0 ? void 0 : onPanelChange(viewDate, mode);\n }\n }));\n if (panelRender) {\n panelNode = panelRender(panelNode);\n }\n var panel = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, panelNode);\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n var clearNode;\n if (allowClear && mergedValue && !disabled) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n triggerChange(null);\n triggerOpen(false);\n },\n className: \"\".concat(prefixCls, \"-clear\"),\n role: \"button\"\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n var mergedInputProps = _objectSpread(_objectSpread(_objectSpread({\n id: id,\n tabIndex: tabIndex,\n disabled: disabled,\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !typing,\n value: hoverValue || text,\n onChange: function onChange(e) {\n triggerTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: placeholder,\n ref: inputRef,\n title: text\n }, inputProps), {}, {\n size: getInputSize(picker, formatList[0], generateConfig)\n }, getDataOrAriaProps(props)), {}, {\n autoComplete: autoComplete\n });\n var inputNode = inputRender ? inputRender(mergedInputProps) : /*#__PURE__*/React.createElement(\"input\", mergedInputProps);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n warning(!defaultOpenValue, '`defaultOpenValue` may confuse user for the current value status. Please use `defaultValue` instead.');\n }\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(date);\n triggerOpen(false);\n }\n };\n var popupPlacement = direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n panelRef: panelDivRef,\n onSelect: onContextSelect,\n open: mergedOpen,\n defaultOpenValue: defaultOpenValue,\n onDateMouseEnter: onEnter,\n onDateMouseLeave: onLeave\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: panel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n popupPlacement: popupPlacement,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: classNames(prefixCls, className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), focused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onMouseDown: onMouseDown,\n onMouseUp: onMouseUp,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), _defineProperty({}, \"\".concat(prefixCls, \"-input-placeholder\"), !!hoverValue)),\n ref: inputDivRef\n }, inputNode, suffixNode, clearNode))));\n}\n// Wrap with class component to enable pass generic with instance method\nvar Picker = /*#__PURE__*/function (_React$Component) {\n _inherits(Picker, _React$Component);\n var _super = _createSuper(Picker);\n function Picker() {\n var _this;\n _classCallCheck(this, Picker);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.pickerRef = /*#__PURE__*/React.createRef();\n _this.focus = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n };\n _this.blur = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n };\n return _this;\n }\n _createClass(Picker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerPicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return Picker;\n}(React.Component);\nexport default Picker;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { getValue, updateValues } from '../utils/miscUtil';\nimport { getClosingViewDate, isSameYear, isSameMonth, isSameDecade } from '../utils/dateUtil';\nfunction getStartEndDistance(startDate, endDate, picker, generateConfig) {\n var startNext = getClosingViewDate(startDate, picker, generateConfig, 1);\n function getDistance(compareFunc) {\n if (compareFunc(startDate, endDate)) {\n return 'same';\n }\n if (compareFunc(startNext, endDate)) {\n return 'closing';\n }\n return 'far';\n }\n switch (picker) {\n case 'year':\n return getDistance(function (start, end) {\n return isSameDecade(generateConfig, start, end);\n });\n case 'quarter':\n case 'month':\n return getDistance(function (start, end) {\n return isSameYear(generateConfig, start, end);\n });\n default:\n return getDistance(function (start, end) {\n return isSameMonth(generateConfig, start, end);\n });\n }\n}\nfunction getRangeViewDate(values, index, picker, generateConfig) {\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n if (index === 0) {\n return startDate;\n }\n if (startDate && endDate) {\n var distance = getStartEndDistance(startDate, endDate, picker, generateConfig);\n switch (distance) {\n case 'same':\n return startDate;\n case 'closing':\n return startDate;\n default:\n return getClosingViewDate(endDate, picker, generateConfig, -1);\n }\n }\n return startDate;\n}\nexport default function useRangeViewDates(_ref) {\n var values = _ref.values,\n picker = _ref.picker,\n defaultDates = _ref.defaultDates,\n generateConfig = _ref.generateConfig;\n var _React$useState = React.useState(function () {\n return [getValue(defaultDates, 0), getValue(defaultDates, 1)];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n defaultViewDates = _React$useState2[0],\n setDefaultViewDates = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n viewDates = _React$useState4[0],\n setInternalViewDates = _React$useState4[1];\n var startDate = getValue(values, 0);\n var endDate = getValue(values, 1);\n function getViewDate(index) {\n // If set default view date, use it\n if (defaultViewDates[index]) {\n return defaultViewDates[index];\n }\n return getValue(viewDates, index) || getRangeViewDate(values, index, picker, generateConfig) || startDate || endDate || generateConfig.getNow();\n }\n function setViewDate(viewDate, index) {\n if (viewDate) {\n var newViewDates = updateValues(viewDates, viewDate, index);\n // Set view date will clean up default one\n setDefaultViewDates(\n // Should always be an array\n updateValues(defaultViewDates, null, index) || [null, null]);\n // Reset another one when not have value\n var anotherIndex = (index + 1) % 2;\n if (!getValue(values, anotherIndex)) {\n newViewDates = updateValues(newViewDates, viewDate, anotherIndex);\n }\n setInternalViewDates(newViewDates);\n } else if (startDate || endDate) {\n // Reset all when has values when `viewDate` is `null` which means from open trigger\n setInternalViewDates(null);\n }\n }\n return [getViewDate, setViewDate];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport PickerTrigger from './PickerTrigger';\nimport PickerPanel from './PickerPanel';\nimport usePickerInput from './hooks/usePickerInput';\nimport getDataOrAriaProps, { toArray, getValue, updateValues } from './utils/miscUtil';\nimport { getDefaultFormat, getInputSize, elementsContains } from './utils/uiUtil';\nimport PanelContext from './PanelContext';\nimport { isEqual, getClosingViewDate, isSameDate, isSameWeek, isSameQuarter, formatValue, parseValue } from './utils/dateUtil';\nimport useValueTexts from './hooks/useValueTexts';\nimport useTextValueMapping from './hooks/useTextValueMapping';\nimport RangeContext from './RangeContext';\nimport useRangeDisabled from './hooks/useRangeDisabled';\nimport getExtraFooter from './utils/getExtraFooter';\nimport getRanges from './utils/getRanges';\nimport useRangeViewDates from './hooks/useRangeViewDates';\nimport useHoverValue from './hooks/useHoverValue';\nimport { legacyPropsWarning } from './utils/warnUtil';\nfunction reorderValues(values, generateConfig) {\n if (values && values[0] && values[1] && generateConfig.isAfter(values[0], values[1])) {\n return [values[1], values[0]];\n }\n return values;\n}\nfunction canValueTrigger(value, index, disabled, allowEmpty) {\n if (value) {\n return true;\n }\n if (allowEmpty && allowEmpty[index]) {\n return true;\n }\n if (disabled[(index + 1) % 2]) {\n return true;\n }\n return false;\n}\nfunction InnerRangePicker(props) {\n var _classNames2, _classNames3, _classNames4;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n id = props.id,\n style = props.style,\n className = props.className,\n popupStyle = props.popupStyle,\n dropdownClassName = props.dropdownClassName,\n transitionName = props.transitionName,\n dropdownAlign = props.dropdownAlign,\n getPopupContainer = props.getPopupContainer,\n generateConfig = props.generateConfig,\n locale = props.locale,\n placeholder = props.placeholder,\n autoFocus = props.autoFocus,\n disabled = props.disabled,\n format = props.format,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n showTime = props.showTime,\n use12Hours = props.use12Hours,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '~' : _props$separator,\n value = props.value,\n defaultValue = props.defaultValue,\n defaultPickerValue = props.defaultPickerValue,\n open = props.open,\n defaultOpen = props.defaultOpen,\n disabledDate = props.disabledDate,\n _disabledTime = props.disabledTime,\n dateRender = props.dateRender,\n panelRender = props.panelRender,\n ranges = props.ranges,\n allowEmpty = props.allowEmpty,\n allowClear = props.allowClear,\n suffixIcon = props.suffixIcon,\n clearIcon = props.clearIcon,\n pickerRef = props.pickerRef,\n inputReadOnly = props.inputReadOnly,\n mode = props.mode,\n renderExtraFooter = props.renderExtraFooter,\n onChange = props.onChange,\n onOpenChange = props.onOpenChange,\n onPanelChange = props.onPanelChange,\n onCalendarChange = props.onCalendarChange,\n _onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseDown = props.onMouseDown,\n onMouseUp = props.onMouseUp,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n _onOk = props.onOk,\n _onKeyDown = props.onKeyDown,\n components = props.components,\n order = props.order,\n direction = props.direction,\n activePickerIndex = props.activePickerIndex,\n _props$autoComplete = props.autoComplete,\n autoComplete = _props$autoComplete === void 0 ? 'off' : _props$autoComplete;\n var needConfirmButton = picker === 'date' && !!showTime || picker === 'time';\n // We record opened status here in case repeat open with picker\n var openRecordsRef = useRef({});\n var containerRef = useRef(null);\n var panelDivRef = useRef(null);\n var startInputDivRef = useRef(null);\n var endInputDivRef = useRef(null);\n var separatorRef = useRef(null);\n var startInputRef = useRef(null);\n var endInputRef = useRef(null);\n var arrowRef = useRef(null);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n legacyPropsWarning(props);\n }\n // ============================= Misc ==============================\n var formatList = toArray(getDefaultFormat(format, picker, showTime, use12Hours));\n // Active picker\n var _useMergedState = useMergedState(0, {\n value: activePickerIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActivePickerIndex = _useMergedState2[0],\n setMergedActivePickerIndex = _useMergedState2[1];\n // Operation ref\n var operationRef = useRef(null);\n var mergedDisabled = React.useMemo(function () {\n if (Array.isArray(disabled)) {\n return disabled;\n }\n return [disabled || false, disabled || false];\n }, [disabled]);\n // ============================= Value =============================\n var _useMergedState3 = useMergedState(null, {\n value: value,\n defaultValue: defaultValue,\n postState: function postState(values) {\n return picker === 'time' && !order ? values : reorderValues(values, generateConfig);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedValue = _useMergedState4[0],\n setInnerValue = _useMergedState4[1];\n // =========================== View Date ===========================\n // Config view panel\n var _useRangeViewDates = useRangeViewDates({\n values: mergedValue,\n picker: picker,\n defaultDates: defaultPickerValue,\n generateConfig: generateConfig\n }),\n _useRangeViewDates2 = _slicedToArray(_useRangeViewDates, 2),\n getViewDate = _useRangeViewDates2[0],\n setViewDate = _useRangeViewDates2[1];\n // ========================= Select Values =========================\n var _useMergedState5 = useMergedState(mergedValue, {\n postState: function postState(values) {\n var postValues = values;\n if (mergedDisabled[0] && mergedDisabled[1]) {\n return postValues;\n }\n // Fill disabled unit\n for (var i = 0; i < 2; i += 1) {\n if (mergedDisabled[i] && !postValues && !getValue(postValues, i) && !getValue(allowEmpty, i)) {\n postValues = updateValues(postValues, generateConfig.getNow(), i);\n }\n }\n return postValues;\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n selectedValue = _useMergedState6[0],\n setSelectedValue = _useMergedState6[1];\n // ============================= Modes =============================\n var _useMergedState7 = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState8 = _slicedToArray(_useMergedState7, 2),\n mergedModes = _useMergedState8[0],\n setInnerModes = _useMergedState8[1];\n useEffect(function () {\n setInnerModes([picker, picker]);\n }, [picker]);\n var triggerModesChange = function triggerModesChange(modes, values) {\n setInnerModes(modes);\n if (onPanelChange) {\n onPanelChange(values, modes);\n }\n };\n // ========================= Disable Date ==========================\n var _useRangeDisabled = useRangeDisabled({\n picker: picker,\n selectedValue: selectedValue,\n locale: locale,\n disabled: mergedDisabled,\n disabledDate: disabledDate,\n generateConfig: generateConfig\n }, openRecordsRef.current[1], openRecordsRef.current[0]),\n _useRangeDisabled2 = _slicedToArray(_useRangeDisabled, 2),\n disabledStartDate = _useRangeDisabled2[0],\n disabledEndDate = _useRangeDisabled2[1];\n // ============================= Open ==============================\n var _useMergedState9 = useMergedState(false, {\n value: open,\n defaultValue: defaultOpen,\n postState: function postState(postOpen) {\n return mergedDisabled[mergedActivePickerIndex] ? false : postOpen;\n },\n onChange: function onChange(newOpen) {\n if (onOpenChange) {\n onOpenChange(newOpen);\n }\n if (!newOpen && operationRef.current && operationRef.current.onClose) {\n operationRef.current.onClose();\n }\n }\n }),\n _useMergedState10 = _slicedToArray(_useMergedState9, 2),\n mergedOpen = _useMergedState10[0],\n triggerInnerOpen = _useMergedState10[1];\n var startOpen = mergedOpen && mergedActivePickerIndex === 0;\n var endOpen = mergedOpen && mergedActivePickerIndex === 1;\n // ============================= Popup =============================\n // Popup min width\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n popupMinWidth = _useState2[0],\n setPopupMinWidth = _useState2[1];\n useEffect(function () {\n if (!mergedOpen && containerRef.current) {\n setPopupMinWidth(containerRef.current.offsetWidth);\n }\n }, [mergedOpen]);\n // ============================ Trigger ============================\n var triggerRef = React.useRef();\n function _triggerOpen(newOpen, index) {\n if (newOpen) {\n clearTimeout(triggerRef.current);\n openRecordsRef.current[index] = true;\n setMergedActivePickerIndex(index);\n triggerInnerOpen(newOpen);\n // Open to reset view date\n if (!mergedOpen) {\n setViewDate(null, index);\n }\n } else if (mergedActivePickerIndex === index) {\n triggerInnerOpen(newOpen);\n // Clean up async\n // This makes ref not quick refresh in case user open another input with blur trigger\n var openRecords = openRecordsRef.current;\n triggerRef.current = setTimeout(function () {\n if (openRecords === openRecordsRef.current) {\n openRecordsRef.current = {};\n }\n });\n }\n }\n function triggerOpenAndFocus(index) {\n _triggerOpen(true, index);\n // Use setTimeout to make sure panel DOM exists\n setTimeout(function () {\n var inputRef = [startInputRef, endInputRef][index];\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, 0);\n }\n function triggerChange(newValue, sourceIndex) {\n var values = newValue;\n var startValue = getValue(values, 0);\n var endValue = getValue(values, 1);\n // >>>>> Format start & end values\n if (startValue && endValue && generateConfig.isAfter(startValue, endValue)) {\n if (\n // WeekPicker only compare week\n picker === 'week' && !isSameWeek(generateConfig, locale.locale, startValue, endValue) ||\n // QuotaPicker only compare week\n picker === 'quarter' && !isSameQuarter(generateConfig, startValue, endValue) ||\n // Other non-TimePicker compare date\n picker !== 'week' && picker !== 'quarter' && picker !== 'time' && !isSameDate(generateConfig, startValue, endValue)) {\n // Clean up end date when start date is after end date\n if (sourceIndex === 0) {\n values = [startValue, null];\n endValue = null;\n } else {\n startValue = null;\n values = [null, endValue];\n }\n // Clean up cache since invalidate\n openRecordsRef.current = _defineProperty({}, sourceIndex, true);\n } else if (picker !== 'time' || order !== false) {\n // Reorder when in same date\n values = reorderValues(values, generateConfig);\n }\n }\n setSelectedValue(values);\n var startStr = values && values[0] ? formatValue(values[0], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n var endStr = values && values[1] ? formatValue(values[1], {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n }) : '';\n if (onCalendarChange) {\n var info = {\n range: sourceIndex === 0 ? 'start' : 'end'\n };\n onCalendarChange(values, [startStr, endStr], info);\n }\n // >>>>> Trigger `onChange` event\n var canStartValueTrigger = canValueTrigger(startValue, 0, mergedDisabled, allowEmpty);\n var canEndValueTrigger = canValueTrigger(endValue, 1, mergedDisabled, allowEmpty);\n var canTrigger = values === null || canStartValueTrigger && canEndValueTrigger;\n if (canTrigger) {\n // Trigger onChange only when value is validate\n setInnerValue(values);\n if (onChange && (!isEqual(generateConfig, getValue(mergedValue, 0), startValue) || !isEqual(generateConfig, getValue(mergedValue, 1), endValue))) {\n onChange(values, [startStr, endStr]);\n }\n }\n // >>>>> Open picker when\n // Always open another picker if possible\n var nextOpenIndex = null;\n if (sourceIndex === 0 && !mergedDisabled[1]) {\n nextOpenIndex = 1;\n } else if (sourceIndex === 1 && !mergedDisabled[0]) {\n nextOpenIndex = 0;\n }\n if (nextOpenIndex !== null && nextOpenIndex !== mergedActivePickerIndex && (!openRecordsRef.current[nextOpenIndex] || !getValue(values, nextOpenIndex)) && getValue(values, sourceIndex)) {\n // Delay to focus to avoid input blur trigger expired selectedValues\n triggerOpenAndFocus(nextOpenIndex);\n } else {\n _triggerOpen(false, sourceIndex);\n }\n }\n var forwardKeyDown = function forwardKeyDown(e) {\n if (mergedOpen && operationRef.current && operationRef.current.onKeyDown) {\n // Let popup panel handle keyboard\n return operationRef.current.onKeyDown(e);\n }\n /* istanbul ignore next */\n /* eslint-disable no-lone-blocks */\n {\n warning(false, 'Picker not correct forward KeyDown operation. Please help to fire issue about this.');\n return false;\n }\n };\n // ============================= Text ==============================\n var sharedTextHooksProps = {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n };\n var _useValueTexts = useValueTexts(getValue(selectedValue, 0), sharedTextHooksProps),\n _useValueTexts2 = _slicedToArray(_useValueTexts, 2),\n startValueTexts = _useValueTexts2[0],\n firstStartValueText = _useValueTexts2[1];\n var _useValueTexts3 = useValueTexts(getValue(selectedValue, 1), sharedTextHooksProps),\n _useValueTexts4 = _slicedToArray(_useValueTexts3, 2),\n endValueTexts = _useValueTexts4[0],\n firstEndValueText = _useValueTexts4[1];\n var _onTextChange = function onTextChange(newText, index) {\n var inputDate = parseValue(newText, {\n locale: locale,\n formatList: formatList,\n generateConfig: generateConfig\n });\n var disabledFunc = index === 0 ? disabledStartDate : disabledEndDate;\n if (inputDate && !disabledFunc(inputDate)) {\n setSelectedValue(updateValues(selectedValue, inputDate, index));\n setViewDate(inputDate, index);\n }\n };\n var _useTextValueMapping = useTextValueMapping({\n valueTexts: startValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 0);\n }\n }),\n _useTextValueMapping2 = _slicedToArray(_useTextValueMapping, 3),\n startText = _useTextValueMapping2[0],\n triggerStartTextChange = _useTextValueMapping2[1],\n resetStartText = _useTextValueMapping2[2];\n var _useTextValueMapping3 = useTextValueMapping({\n valueTexts: endValueTexts,\n onTextChange: function onTextChange(newText) {\n return _onTextChange(newText, 1);\n }\n }),\n _useTextValueMapping4 = _slicedToArray(_useTextValueMapping3, 3),\n endText = _useTextValueMapping4[0],\n triggerEndTextChange = _useTextValueMapping4[1],\n resetEndText = _useTextValueMapping4[2];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n rangeHoverValue = _useState4[0],\n setRangeHoverValue = _useState4[1];\n // ========================== Hover Range ==========================\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n hoverRangedValue = _useState6[0],\n setHoverRangedValue = _useState6[1];\n var _useHoverValue = useHoverValue(startText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue2 = _slicedToArray(_useHoverValue, 3),\n startHoverValue = _useHoverValue2[0],\n onStartEnter = _useHoverValue2[1],\n onStartLeave = _useHoverValue2[2];\n var _useHoverValue3 = useHoverValue(endText, {\n formatList: formatList,\n generateConfig: generateConfig,\n locale: locale\n }),\n _useHoverValue4 = _slicedToArray(_useHoverValue3, 3),\n endHoverValue = _useHoverValue4[0],\n onEndEnter = _useHoverValue4[1],\n onEndLeave = _useHoverValue4[2];\n var onDateMouseEnter = function onDateMouseEnter(date) {\n setHoverRangedValue(updateValues(selectedValue, date, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartEnter(date);\n } else {\n onEndEnter(date);\n }\n };\n var onDateMouseLeave = function onDateMouseLeave() {\n setHoverRangedValue(updateValues(selectedValue, null, mergedActivePickerIndex));\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n };\n // ============================= Input =============================\n var getSharedInputHookProps = function getSharedInputHookProps(index, resetText) {\n return {\n blurToCancel: needConfirmButton,\n forwardKeyDown: forwardKeyDown,\n onBlur: onBlur,\n isClickOutside: function isClickOutside(target) {\n return !elementsContains([panelDivRef.current, startInputDivRef.current, endInputDivRef.current, containerRef.current], target);\n },\n onFocus: function onFocus(e) {\n setMergedActivePickerIndex(index);\n if (_onFocus) {\n _onFocus(e);\n }\n },\n triggerOpen: function triggerOpen(newOpen) {\n _triggerOpen(newOpen, index);\n },\n onSubmit: function onSubmit() {\n if (\n // When user typing disabledDate with keyboard and enter, this value will be empty\n !selectedValue ||\n // Normal disabled check\n disabledDate && disabledDate(selectedValue[index])) {\n return false;\n }\n triggerChange(selectedValue, index);\n resetText();\n },\n onCancel: function onCancel() {\n _triggerOpen(false, index);\n setSelectedValue(mergedValue);\n resetText();\n }\n };\n };\n var currentFocusedKey = useRef('');\n var _usePickerInput = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(0, resetStartText)), {}, {\n open: startOpen,\n value: startText,\n currentFocusedKey: currentFocusedKey,\n key: 'start',\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput2 = _slicedToArray(_usePickerInput, 2),\n startInputProps = _usePickerInput2[0],\n _usePickerInput2$ = _usePickerInput2[1],\n startFocused = _usePickerInput2$.focused,\n startTyping = _usePickerInput2$.typing;\n var _usePickerInput3 = usePickerInput(_objectSpread(_objectSpread({}, getSharedInputHookProps(1, resetEndText)), {}, {\n open: endOpen,\n value: endText,\n currentFocusedKey: currentFocusedKey,\n key: 'end',\n onKeyDown: function onKeyDown(e, preventDefault) {\n _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e, preventDefault);\n }\n })),\n _usePickerInput4 = _slicedToArray(_usePickerInput3, 2),\n endInputProps = _usePickerInput4[0],\n _usePickerInput4$ = _usePickerInput4[1],\n endFocused = _usePickerInput4$.focused,\n endTyping = _usePickerInput4$.typing;\n // ========================== Click Picker ==========================\n var onPickerClick = function onPickerClick(e) {\n // When click inside the picker & outside the picker's input elements\n // the panel should still be opened\n if (onClick) {\n onClick(e);\n }\n if (!mergedOpen && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n if (!mergedDisabled[0]) {\n triggerOpenAndFocus(0);\n } else if (!mergedDisabled[1]) {\n triggerOpenAndFocus(1);\n }\n }\n };\n var onPickerMouseDown = function onPickerMouseDown(e) {\n // shouldn't affect input elements if picker is active\n if (onMouseDown) {\n onMouseDown(e);\n }\n if (mergedOpen && (startFocused || endFocused) && !startInputRef.current.contains(e.target) && !endInputRef.current.contains(e.target)) {\n e.preventDefault();\n }\n };\n // ============================= Sync ==============================\n // Close should sync back with text value\n var startStr = mergedValue && mergedValue[0] ? formatValue(mergedValue[0], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n var endStr = mergedValue && mergedValue[1] ? formatValue(mergedValue[1], {\n locale: locale,\n format: 'YYYYMMDDHHmmss',\n generateConfig: generateConfig\n }) : '';\n useEffect(function () {\n if (!mergedOpen) {\n setSelectedValue(mergedValue);\n if (!startValueTexts.length || startValueTexts[0] === '') {\n triggerStartTextChange('');\n } else if (firstStartValueText !== startText) {\n resetStartText();\n }\n if (!endValueTexts.length || endValueTexts[0] === '') {\n triggerEndTextChange('');\n } else if (firstEndValueText !== endText) {\n resetEndText();\n }\n }\n }, [mergedOpen, startValueTexts, endValueTexts]);\n // Sync innerValue with control mode\n useEffect(function () {\n setSelectedValue(mergedValue);\n }, [startStr, endStr]);\n // ============================ Warning ============================\n if (process.env.NODE_ENV !== 'production') {\n if (value && Array.isArray(disabled) && (getValue(disabled, 0) && !getValue(value, 0) || getValue(disabled, 1) && !getValue(value, 1))) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n // ============================ Private ============================\n if (pickerRef) {\n pickerRef.current = {\n focus: function focus() {\n if (startInputRef.current) {\n startInputRef.current.focus();\n }\n },\n blur: function blur() {\n if (startInputRef.current) {\n startInputRef.current.blur();\n }\n if (endInputRef.current) {\n endInputRef.current.blur();\n }\n }\n };\n }\n // ============================ Ranges =============================\n var rangeLabels = Object.keys(ranges || {});\n var rangeList = rangeLabels.map(function (label) {\n var range = ranges[label];\n var newValues = typeof range === 'function' ? range() : range;\n return {\n label: label,\n onClick: function onClick() {\n triggerChange(newValues, null);\n _triggerOpen(false, mergedActivePickerIndex);\n },\n onMouseEnter: function onMouseEnter() {\n setRangeHoverValue(newValues);\n },\n onMouseLeave: function onMouseLeave() {\n setRangeHoverValue(null);\n }\n };\n });\n // ============================= Panel =============================\n function renderPanel() {\n var panelPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var panelProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var panelHoverRangedValue = null;\n if (mergedOpen && hoverRangedValue && hoverRangedValue[0] && hoverRangedValue[1] && generateConfig.isAfter(hoverRangedValue[1], hoverRangedValue[0])) {\n panelHoverRangedValue = hoverRangedValue;\n }\n var panelShowTime = showTime;\n if (showTime && _typeof(showTime) === 'object' && showTime.defaultValue) {\n var timeDefaultValues = showTime.defaultValue;\n panelShowTime = _objectSpread(_objectSpread({}, showTime), {}, {\n defaultValue: getValue(timeDefaultValues, mergedActivePickerIndex) || undefined\n });\n }\n var panelDateRender = null;\n if (dateRender) {\n panelDateRender = function panelDateRender(date, today) {\n return dateRender(date, today, {\n range: mergedActivePickerIndex ? 'end' : 'start'\n });\n };\n }\n return /*#__PURE__*/React.createElement(RangeContext.Provider, {\n value: {\n inRange: true,\n panelPosition: panelPosition,\n rangedValue: rangeHoverValue || selectedValue,\n hoverRangedValue: panelHoverRangedValue\n }\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, props, panelProps, {\n dateRender: panelDateRender,\n showTime: panelShowTime,\n mode: mergedModes[mergedActivePickerIndex],\n generateConfig: generateConfig,\n style: undefined,\n direction: direction,\n disabledDate: mergedActivePickerIndex === 0 ? disabledStartDate : disabledEndDate,\n disabledTime: function disabledTime(date) {\n if (_disabledTime) {\n return _disabledTime(date, mergedActivePickerIndex === 0 ? 'start' : 'end');\n }\n return false;\n },\n className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-panel-focused\"), mergedActivePickerIndex === 0 ? !startTyping : !endTyping)),\n value: getValue(selectedValue, mergedActivePickerIndex),\n locale: locale,\n tabIndex: -1,\n onPanelChange: function onPanelChange(date, newMode) {\n // clear hover value when panel change\n if (mergedActivePickerIndex === 0) {\n onStartLeave(true);\n }\n if (mergedActivePickerIndex === 1) {\n onEndLeave(true);\n }\n triggerModesChange(updateValues(mergedModes, newMode, mergedActivePickerIndex), updateValues(selectedValue, date, mergedActivePickerIndex));\n var viewDate = date;\n if (panelPosition === 'right' && mergedModes[mergedActivePickerIndex] === newMode) {\n viewDate = getClosingViewDate(viewDate, newMode, generateConfig, -1);\n }\n setViewDate(viewDate, mergedActivePickerIndex);\n },\n onOk: null,\n onSelect: undefined,\n onChange: undefined,\n defaultValue: mergedActivePickerIndex === 0 ? getValue(selectedValue, 1) : getValue(selectedValue, 0)\n })));\n }\n var arrowLeft = 0;\n var panelLeft = 0;\n if (mergedActivePickerIndex && startInputDivRef.current && separatorRef.current && panelDivRef.current) {\n // Arrow offset\n arrowLeft = startInputDivRef.current.offsetWidth + separatorRef.current.offsetWidth;\n // If panelWidth - arrowWidth - arrowMarginLeft < arrowLeft, panel should move to right side.\n // If arrowOffsetLeft > arrowLeft, arrowMarginLeft = arrowOffsetLeft - arrowLeft\n var arrowMarginLeft = arrowRef.current.offsetLeft > arrowLeft ? arrowRef.current.offsetLeft - arrowLeft : arrowRef.current.offsetLeft;\n if (panelDivRef.current.offsetWidth && arrowRef.current.offsetWidth && arrowLeft > panelDivRef.current.offsetWidth - arrowRef.current.offsetWidth - (direction === 'rtl' ? 0 : arrowMarginLeft)) {\n panelLeft = arrowLeft;\n }\n }\n var arrowPositionStyle = direction === 'rtl' ? {\n right: arrowLeft\n } : {\n left: arrowLeft\n };\n function renderPanels() {\n var panels;\n var extraNode = getExtraFooter(prefixCls, mergedModes[mergedActivePickerIndex], renderExtraFooter);\n var rangesNode = getRanges({\n prefixCls: prefixCls,\n components: components,\n needConfirmButton: needConfirmButton,\n okDisabled: !getValue(selectedValue, mergedActivePickerIndex) || disabledDate && disabledDate(selectedValue[mergedActivePickerIndex]),\n locale: locale,\n rangeList: rangeList,\n onOk: function onOk() {\n if (getValue(selectedValue, mergedActivePickerIndex)) {\n // triggerChangeOld(selectedValue);\n triggerChange(selectedValue, mergedActivePickerIndex);\n if (_onOk) {\n _onOk(selectedValue);\n }\n }\n }\n });\n if (picker !== 'time' && !showTime) {\n var viewDate = getViewDate(mergedActivePickerIndex);\n var nextViewDate = getClosingViewDate(viewDate, picker, generateConfig);\n var currentMode = mergedModes[mergedActivePickerIndex];\n var showDoublePanel = currentMode === picker;\n var leftPanel = renderPanel(showDoublePanel ? 'left' : false, {\n pickerValue: viewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(newViewDate, mergedActivePickerIndex);\n }\n });\n var rightPanel = renderPanel('right', {\n pickerValue: nextViewDate,\n onPickerValueChange: function onPickerValueChange(newViewDate) {\n setViewDate(getClosingViewDate(newViewDate, picker, generateConfig, -1), mergedActivePickerIndex);\n }\n });\n if (direction === 'rtl') {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, rightPanel, showDoublePanel && leftPanel);\n } else {\n panels = /*#__PURE__*/React.createElement(React.Fragment, null, leftPanel, showDoublePanel && rightPanel);\n }\n } else {\n panels = renderPanel();\n }\n var mergedNodes = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, panels), (extraNode || rangesNode) && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode, rangesNode));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-container\"),\n style: {\n marginLeft: panelLeft\n },\n ref: panelDivRef,\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n }, mergedNodes);\n }\n var rangePanel = /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\")),\n style: {\n minWidth: popupMinWidth\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: arrowPositionStyle\n }), renderPanels());\n // ============================= Icons =============================\n var suffixNode;\n if (suffixIcon) {\n suffixNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, suffixIcon);\n }\n var clearNode;\n if (allowClear && (getValue(mergedValue, 0) && !mergedDisabled[0] || getValue(mergedValue, 1) && !mergedDisabled[1])) {\n clearNode = /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n onMouseUp: function onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n var values = mergedValue;\n if (!mergedDisabled[0]) {\n values = updateValues(values, null, 0);\n }\n if (!mergedDisabled[1]) {\n values = updateValues(values, null, 1);\n }\n triggerChange(values, null);\n _triggerOpen(false, mergedActivePickerIndex);\n },\n className: \"\".concat(prefixCls, \"-clear\")\n }, clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n }));\n }\n var inputSharedProps = {\n size: getInputSize(picker, formatList[0], generateConfig)\n };\n var activeBarLeft = 0;\n var activeBarWidth = 0;\n if (startInputDivRef.current && endInputDivRef.current && separatorRef.current) {\n if (mergedActivePickerIndex === 0) {\n activeBarWidth = startInputDivRef.current.offsetWidth;\n } else {\n activeBarLeft = arrowLeft;\n activeBarWidth = endInputDivRef.current.offsetWidth;\n }\n }\n var activeBarPositionStyle = direction === 'rtl' ? {\n right: activeBarLeft\n } : {\n left: activeBarLeft\n };\n // ============================ Return =============================\n var onContextSelect = function onContextSelect(date, type) {\n var values = updateValues(selectedValue, date, mergedActivePickerIndex);\n if (type === 'submit' || type !== 'key' && !needConfirmButton) {\n // triggerChange will also update selected values\n triggerChange(values, mergedActivePickerIndex);\n // clear hover value style\n if (mergedActivePickerIndex === 0) {\n onStartLeave();\n } else {\n onEndLeave();\n }\n } else {\n setSelectedValue(values);\n }\n };\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: {\n operationRef: operationRef,\n hideHeader: picker === 'time',\n onDateMouseEnter: onDateMouseEnter,\n onDateMouseLeave: onDateMouseLeave,\n hideRanges: true,\n onSelect: onContextSelect,\n open: mergedOpen\n }\n }, /*#__PURE__*/React.createElement(PickerTrigger, {\n visible: mergedOpen,\n popupElement: rangePanel,\n popupStyle: popupStyle,\n prefixCls: prefixCls,\n dropdownClassName: dropdownClassName,\n dropdownAlign: dropdownAlign,\n getPopupContainer: getPopupContainer,\n transitionName: transitionName,\n range: true,\n direction: direction\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-disabled\"), mergedDisabled[0] && mergedDisabled[1]), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-focused\"), mergedActivePickerIndex === 0 ? startFocused : endFocused), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2)),\n style: style,\n onClick: onPickerClick,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onPickerMouseDown,\n onMouseUp: onMouseUp\n }, getDataOrAriaProps(props)), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames3 = {}, _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 0), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-input-placeholder\"), !!startHoverValue), _classNames3)),\n ref: startInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n id: id,\n disabled: mergedDisabled[0],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !startTyping,\n value: startHoverValue || startText,\n onChange: function onChange(e) {\n triggerStartTextChange(e.target.value);\n },\n autoFocus: autoFocus,\n placeholder: getValue(placeholder, 0) || '',\n ref: startInputRef\n }, startInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\"),\n ref: separatorRef\n }, separator), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), (_classNames4 = {}, _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-active\"), mergedActivePickerIndex === 1), _defineProperty(_classNames4, \"\".concat(prefixCls, \"-input-placeholder\"), !!endHoverValue), _classNames4)),\n ref: endInputDivRef\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n disabled: mergedDisabled[1],\n readOnly: inputReadOnly || typeof formatList[0] === 'function' || !endTyping,\n value: endHoverValue || endText,\n onChange: function onChange(e) {\n triggerEndTextChange(e.target.value);\n },\n placeholder: getValue(placeholder, 1) || '',\n ref: endInputRef\n }, endInputProps, inputSharedProps, {\n autoComplete: autoComplete\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: _objectSpread(_objectSpread({}, activeBarPositionStyle), {}, {\n width: activeBarWidth,\n position: 'absolute'\n })\n }), suffixNode, clearNode)));\n}\n// Wrap with class component to enable pass generic with instance method\nvar RangePicker = /*#__PURE__*/function (_React$Component) {\n _inherits(RangePicker, _React$Component);\n var _super = _createSuper(RangePicker);\n function RangePicker() {\n var _this;\n _classCallCheck(this, RangePicker);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.pickerRef = /*#__PURE__*/React.createRef();\n _this.focus = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.focus();\n }\n };\n _this.blur = function () {\n if (_this.pickerRef.current) {\n _this.pickerRef.current.blur();\n }\n };\n return _this;\n }\n _createClass(RangePicker, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(InnerRangePicker, _extends({}, this.props, {\n pickerRef: this.pickerRef\n }));\n }\n }]);\n return RangePicker;\n}(React.Component);\nexport default RangePicker;","import * as React from 'react';\nimport { getValue } from '../utils/miscUtil';\nimport { isSameDate, getQuarter } from '../utils/dateUtil';\nexport default function useRangeDisabled(_ref, disabledStart, disabledEnd) {\n var picker = _ref.picker,\n locale = _ref.locale,\n selectedValue = _ref.selectedValue,\n disabledDate = _ref.disabledDate,\n disabled = _ref.disabled,\n generateConfig = _ref.generateConfig;\n var startDate = getValue(selectedValue, 0);\n var endDate = getValue(selectedValue, 1);\n function weekFirstDate(date) {\n return generateConfig.locale.getWeekFirstDate(locale.locale, date);\n }\n function monthNumber(date) {\n var year = generateConfig.getYear(date);\n var month = generateConfig.getMonth(date);\n return year * 100 + month;\n }\n function quarterNumber(date) {\n var year = generateConfig.getYear(date);\n var quarter = getQuarter(generateConfig, date);\n return year * 10 + quarter;\n }\n var disabledStartDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n }\n // Disabled range\n if (disabled[1] && endDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n // Disabled part\n if (disabledStart && endDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) > quarterNumber(endDate);\n case 'month':\n return monthNumber(date) > monthNumber(endDate);\n case 'week':\n return weekFirstDate(date) > weekFirstDate(endDate);\n default:\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(date, endDate);\n }\n }\n return false;\n }, [disabledDate, disabled[1], endDate, disabledStart]);\n var disabledEndDate = React.useCallback(function (date) {\n if (disabledDate && disabledDate(date)) {\n return true;\n }\n // Disabled range\n if (disabled[0] && startDate) {\n return !isSameDate(generateConfig, date, endDate) && generateConfig.isAfter(startDate, date);\n }\n // Disabled part\n if (disabledEnd && startDate) {\n switch (picker) {\n case 'quarter':\n return quarterNumber(date) < quarterNumber(startDate);\n case 'month':\n return monthNumber(date) < monthNumber(startDate);\n case 'week':\n return weekFirstDate(date) < weekFirstDate(startDate);\n default:\n return !isSameDate(generateConfig, date, startDate) && generateConfig.isAfter(startDate, date);\n }\n }\n return false;\n }, [disabledDate, disabled[0], startDate, disabledEnd]);\n return [disabledStartDate, disabledEndDate];\n}","import Picker from './Picker';\nimport PickerPanel from './PickerPanel';\nimport RangePicker from './RangePicker';\nexport { PickerPanel, RangePicker };\nexport default Picker;","export function getPlaceholder(picker, locale, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(picker, locale, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function transPlacement2DropdownAlign(direction, placement) {\n var overflow = {\n adjustX: 1,\n adjustY: 1\n };\n switch (placement) {\n case 'bottomLeft':\n {\n return {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n case 'bottomRight':\n {\n return {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n case 'topLeft':\n {\n return {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: overflow\n };\n }\n case 'topRight':\n {\n return {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: overflow\n };\n }\n default:\n {\n return {\n points: direction === 'rtl' ? ['tr', 'br'] : ['tl', 'bl'],\n offset: [0, 4],\n overflow: overflow\n };\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport { useCompactItemContext } from '../../space/Compact';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport enUS from '../locale/en_US';\nimport { getRangePlaceholder, transPlacement2DropdownAlign } from '../util';\nimport warning from '../../_util/warning';\nexport default function generateRangePicker(generateConfig) {\n var RangePicker = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customGetPopupContainer = props.getPopupContainer,\n className = props.className,\n placement = props.placement,\n customizeSize = props.size,\n customDisabled = props.disabled,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n placeholder = props.placeholder,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n customStatus = props.status,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\"]);\n var innerRef = React.useRef(null);\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction,\n getPopupContainer = _useContext.getPopupContainer;\n var prefixCls = getPrefixCls('picker', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var format = props.format,\n showTime = props.showTime,\n picker = props.picker;\n var rootPrefixCls = getPrefixCls();\n var additionalOverrideProps = {};\n additionalOverrideProps = _extends(_extends(_extends({}, additionalOverrideProps), showTime ? getTimeProps(_extends({\n format: format,\n picker: picker\n }, showTime)) : {}), picker === 'time' ? getTimeProps(_extends(_extends({\n format: format\n }, props), {\n picker: picker\n })) : {});\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, 'RangePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n var formItemContext = useContext(FormItemInputContext);\n var hasFeedback = formItemContext.hasFeedback,\n contextStatus = formItemContext.status,\n feedbackIcon = formItemContext.feedbackIcon;\n var suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var locale = _extends(_extends({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCRangePicker, _extends({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: \"\".concat(prefixCls, \"-separator\")\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n placeholder: getRangePlaceholder(picker, locale, placeholder),\n suffixIcon: suffixNode,\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prev-icon\")\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-next-icon\")\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-prev-icon\")\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-next-icon\")\n }),\n allowClear: true,\n transitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, restProps, additionalOverrideProps, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(prefixCls, \"-borderless\"), !bordered), getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), compactItemClassnames, className),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n dropdownClassName: popupClassName || dropdownClassName\n }));\n });\n });\n return RangePicker;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport { useCompactItemContext } from '../../space/Compact';\nimport { Components, getTimeProps } from '.';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport SizeContext from '../../config-provider/SizeContext';\nimport { FormItemInputContext } from '../../form/context';\nimport LocaleReceiver from '../../locale-provider/LocaleReceiver';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport warning from '../../_util/warning';\nimport enUS from '../locale/en_US';\nimport { getPlaceholder, transPlacement2DropdownAlign } from '../util';\nexport default function generatePicker(generateConfig) {\n function getPicker(picker, displayName) {\n var Picker = /*#__PURE__*/forwardRef(function (props, ref) {\n var customizePrefixCls = props.prefixCls,\n customizeGetPopupContainer = props.getPopupContainer,\n className = props.className,\n customizeSize = props.size,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n placement = props.placement,\n placeholder = props.placeholder,\n popupClassName = props.popupClassName,\n dropdownClassName = props.dropdownClassName,\n customDisabled = props.disabled,\n customStatus = props.status,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"className\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\"]);\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls,\n direction = _useContext.direction,\n getPopupContainer = _useContext.getPopupContainer;\n var prefixCls = getPrefixCls('picker', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var innerRef = React.useRef(null);\n var format = props.format,\n showTime = props.showTime;\n useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n },\n blur: function blur() {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n var additionalProps = {\n showToday: true\n };\n var additionalOverrideProps = {};\n if (picker) {\n additionalOverrideProps.picker = picker;\n }\n var mergedPicker = picker || props.picker;\n additionalOverrideProps = _extends(_extends(_extends({}, additionalOverrideProps), showTime ? getTimeProps(_extends({\n format: format,\n picker: mergedPicker\n }, showTime)) : {}), mergedPicker === 'time' ? getTimeProps(_extends(_extends({\n format: format\n }, props), {\n picker: mergedPicker\n })) : {});\n var rootPrefixCls = getPrefixCls();\n // =================== Warning =====================\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', displayName, \"DatePicker.\".concat(displayName, \" is legacy usage. Please use DatePicker[picker='\").concat(picker, \"'] directly.\")) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!dropdownClassName, mergedPicker === 'time' ? 'TimePicker' : 'DatePicker', '`dropdownClassName` is deprecated which will be removed in next major version. Please use `popupClassName` instead.') : void 0;\n // ===================== Size =====================\n var size = React.useContext(SizeContext);\n var mergedSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n var formItemContext = useContext(FormItemInputContext);\n var hasFeedback = formItemContext.hasFeedback,\n contextStatus = formItemContext.status,\n feedbackIcon = formItemContext.feedbackIcon;\n var suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"DatePicker\",\n defaultLocale: enUS\n }, function (contextLocale) {\n var locale = _extends(_extends({}, contextLocale), props.locale);\n return /*#__PURE__*/React.createElement(RCPicker, _extends({\n ref: innerRef,\n placeholder: getPlaceholder(mergedPicker, locale, placeholder),\n suffixIcon: suffixNode,\n dropdownAlign: transPlacement2DropdownAlign(direction, placement),\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prev-icon\")\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-next-icon\")\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-prev-icon\")\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-super-next-icon\")\n }),\n allowClear: true,\n transitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, additionalProps, restProps, additionalOverrideProps, {\n locale: locale.lang,\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(mergedSize), mergedSize), \"\".concat(prefixCls, \"-borderless\"), !bordered), getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), compactItemClassnames, className),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: Components,\n direction: direction,\n disabled: mergedDisabled,\n dropdownClassName: popupClassName || dropdownClassName\n }));\n });\n });\n if (displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n }\n var DatePicker = getPicker();\n var WeekPicker = getPicker('week', 'WeekPicker');\n var MonthPicker = getPicker('month', 'MonthPicker');\n var YearPicker = getPicker('year', 'YearPicker');\n var TimePicker = getPicker('time', 'TimePicker');\n var QuarterPicker = getPicker('quarter', 'QuarterPicker');\n return {\n DatePicker: DatePicker,\n WeekPicker: WeekPicker,\n MonthPicker: MonthPicker,\n YearPicker: YearPicker,\n TimePicker: TimePicker,\n QuarterPicker: QuarterPicker\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { tuple } from '../../_util/type';\nimport PickerButton from '../PickerButton';\nimport PickerTag from '../PickerTag';\nimport generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nexport var Components = {\n button: PickerButton,\n rangeItem: PickerTag\n};\nfunction toArray(list) {\n if (!list) {\n return [];\n }\n return Array.isArray(list) ? list : [list];\n}\nexport function getTimeProps(props) {\n var format = props.format,\n picker = props.picker,\n showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n use12Hours = props.use12Hours;\n var firstFormat = toArray(format)[0];\n var showTimeObj = _extends({}, props);\n if (firstFormat && typeof firstFormat === 'string') {\n if (!firstFormat.includes('s') && showSecond === undefined) {\n showTimeObj.showSecond = false;\n }\n if (!firstFormat.includes('m') && showMinute === undefined) {\n showTimeObj.showMinute = false;\n }\n if (!firstFormat.includes('H') && !firstFormat.includes('h') && showHour === undefined) {\n showTimeObj.showHour = false;\n }\n if ((firstFormat.includes('a') || firstFormat.includes('A')) && use12Hours === undefined) {\n showTimeObj.use12Hours = true;\n }\n }\n if (picker === 'time') {\n return showTimeObj;\n }\n if (typeof firstFormat === 'function') {\n // format of showTime should use default when format is custom format function\n delete showTimeObj.format;\n }\n return {\n showTime: showTimeObj\n };\n}\nvar DataPickerPlacements = tuple('bottomLeft', 'bottomRight', 'topLeft', 'topRight');\nfunction generatePicker(generateConfig) {\n // =========================== Picker ===========================\n var _generateSinglePicker = generateSinglePicker(generateConfig),\n DatePicker = _generateSinglePicker.DatePicker,\n WeekPicker = _generateSinglePicker.WeekPicker,\n MonthPicker = _generateSinglePicker.MonthPicker,\n YearPicker = _generateSinglePicker.YearPicker,\n TimePicker = _generateSinglePicker.TimePicker,\n QuarterPicker = _generateSinglePicker.QuarterPicker;\n // ======================== Range Picker ========================\n var RangePicker = generateRangePicker(generateConfig);\n var MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n return MergedDatePicker;\n}\nexport default generatePicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Button from '../button';\nexport default function PickerButton(props) {\n return /*#__PURE__*/React.createElement(Button, _extends({\n size: \"small\",\n type: \"primary\"\n }, props));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tag from '../tag';\nexport default function PickerTag(props) {\n return /*#__PURE__*/React.createElement(Tag, _extends({\n color: \"blue\"\n }, props));\n}","import momentGenerateConfig from \"rc-picker/es/generate/moment\";\nimport generatePicker from './generatePicker';\nvar DatePicker = generatePicker(momentGenerateConfig);\nexport default DatePicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n SearchOutlined.displayName = 'SearchOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i$3=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i);}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this));},finisher(n){n.createProperty(e.key,i);}};function e$3(e){return (n,t)=>void 0!==t?((i,e,n)=>{e.constructor.createProperty(n,i);})(e,n,t):i$3(e,n)}\n\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n$4;null!=(null===(n$4=window.HTMLSlotElement)||void 0===n$4?void 0:n$4.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));\n\n/**\n * @license\n * Copyright 2010-2022 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '139';\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst FlatShading = 1;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst LinearEncoding = 3000;\nconst sRGBEncoding = 3001;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\nconst KeepStencilOp = 7680;\nconst AlwaysStencilFunc = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst GLSL3 = '300 es';\n\nconst _SRGBAFormat = 1035; // fallback for WebGL 1\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut$1 = [];\n\nfor ( let i = 0; i < 256; i ++ ) {\n\n\t_lut$1[ i ] = ( i < 16 ? '0' : '' ) + ( i ).toString( 16 );\n\n}\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut$1[ d0 & 0xff ] + _lut$1[ d0 >> 8 & 0xff ] + _lut$1[ d0 >> 16 & 0xff ] + _lut$1[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut$1[ d1 & 0xff ] + _lut$1[ d1 >> 8 & 0xff ] + '-' + _lut$1[ d1 >> 16 & 0x0f | 0x40 ] + _lut$1[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut$1[ d2 & 0x3f | 0x80 ] + _lut$1[ d2 >> 8 & 0xff ] + '-' + _lut$1[ d2 >> 16 & 0xff ] + _lut$1[ d2 >> 24 & 0xff ] +\n\t\t\t_lut$1[ d3 & 0xff ] + _lut$1[ d3 >> 8 & 0xff ] + _lut$1[ d3 >> 16 & 0xff ] + _lut$1[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp$1( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp$1( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp$1( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize$1( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nvar MathUtils = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp$1,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp$1,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize$1\n});\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nVector2.prototype.isVector2 = true;\n\nclass Matrix3 {\n\n\tconstructor() {\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tscale( sx, sy ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= sx; te[ 3 ] *= sx; te[ 6 ] *= sx;\n\t\tte[ 1 ] *= sy; te[ 4 ] *= sy; te[ 7 ] *= sy;\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tconst te = this.elements;\n\n\t\tconst a11 = te[ 0 ], a12 = te[ 3 ], a13 = te[ 6 ];\n\t\tconst a21 = te[ 1 ], a22 = te[ 4 ], a23 = te[ 7 ];\n\n\t\tte[ 0 ] = c * a11 + s * a21;\n\t\tte[ 3 ] = c * a12 + s * a22;\n\t\tte[ 6 ] = c * a13 + s * a23;\n\n\t\tte[ 1 ] = - s * a11 + c * a21;\n\t\tte[ 4 ] = - s * a12 + c * a22;\n\t\tte[ 7 ] = - s * a13 + c * a23;\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] += tx * te[ 2 ]; te[ 3 ] += tx * te[ 5 ]; te[ 6 ] += tx * te[ 8 ];\n\t\tte[ 1 ] += ty * te[ 2 ]; te[ 4 ] += ty * te[ 5 ]; te[ 7 ] += ty * te[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nMatrix3.prototype.isMatrix3 = true;\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] > 65535 ) return true;\n\n\t}\n\n\treturn false;\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\n// JavaScript RGB-to-RGB transforms, defined as\n// FN[InputColorSpace][OutputColorSpace] callback functions.\nconst FN = {\n\t[ SRGBColorSpace ]: { [ LinearSRGBColorSpace ]: SRGBToLinear },\n\t[ LinearSRGBColorSpace ]: { [ SRGBColorSpace ]: LinearToSRGB },\n};\n\nconst ColorManagement = {\n\n\tlegacyMode: true,\n\n\tget workingColorSpace() {\n\n\t\treturn LinearSRGBColorSpace;\n\n\t},\n\n\tset workingColorSpace( colorSpace ) {\n\n\t\tconsole.warn( 'THREE.ColorManagement: .workingColorSpace is readonly.' );\n\n\t},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.legacyMode || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tif ( FN[ sourceColorSpace ] && FN[ sourceColorSpace ][ targetColorSpace ] !== undefined ) {\n\n\t\t\tconst fn = FN[ sourceColorSpace ][ targetColorSpace ];\n\n\t\t\tcolor.r = fn( color.r );\n\t\t\tcolor.g = fn( color.g );\n\t\t\tcolor.b = fn( color.b );\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tthrow new Error( 'Unsupported color space conversion.' );\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this.workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this.workingColorSpace );\n\n\t},\n\n};\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _rgb = { r: 0, g: 0, b: 0 };\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nfunction toComponents( source, target ) {\n\n\ttarget.r = source.r;\n\ttarget.g = source.g;\n\ttarget.b = source.b;\n\n\treturn target;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\t\t\treturn this.set( r );\n\n\t\t}\n\n\t\treturn this.setRGB( r, g, b );\n\n\t}\n\n\tset( value ) {\n\n\t\tif ( value && value.isColor ) {\n\n\t\t\tthis.copy( value );\n\n\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\tthis.setHex( value );\n\n\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\tthis.setStyle( value );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = LinearSRGBColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = LinearSRGBColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp$1( s, 0, 1 );\n\t\tl = clamp$1( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;\n\n\t\t\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;\n\n\t\t\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\t\t\t\t\t\tconst h = parseFloat( color[ 1 ] ) / 360;\n\t\t\t\t\t\tconst s = parseInt( color[ 2 ], 10 ) / 100;\n\t\t\t\t\t\tconst l = parseInt( color[ 3 ], 10 ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL( h, s, l, colorSpace );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255;\n\n\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\treturn this;\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255;\n\n\t\t\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\t\t\treturn this;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb ), colorSpace );\n\n\t\treturn clamp$1( _rgb.r * 255, 0, 255 ) << 16 ^ clamp$1( _rgb.g * 255, 0, 255 ) << 8 ^ clamp$1( _rgb.b * 255, 0, 255 ) << 0;\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = LinearSRGBColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb ), colorSpace );\n\n\t\tconst r = _rgb.r, g = _rgb.g, b = _rgb.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = LinearSRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb ), colorSpace );\n\n\t\ttarget.r = _rgb.r;\n\t\ttarget.g = _rgb.g;\n\t\ttarget.b = _rgb.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( toComponents( this, _rgb ), colorSpace );\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ _rgb.r } ${ _rgb.g } ${ _rgb.b })`;\n\n\t\t}\n\n\t\treturn `rgb(${( _rgb.r * 255 ) | 0},${( _rgb.g * 255 ) | 0},${( _rgb.b * 255 ) | 0})`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\t_hslA.h += h; _hslA.s += s; _hslA.l += l;\n\n\t\tthis.setHSL( _hslA.h, _hslA.s, _hslA.l );\n\n\t\treturn this;\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp$1( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp$1( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp$1( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\tif ( attribute.normalized === true ) {\n\n\t\t\t// assuming Uint8Array\n\n\t\t\tthis.r /= 255;\n\t\t\tthis.g /= 255;\n\t\t\tthis.b /= 255;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n}\n\nColor.NAMES = _colorKeywords;\n\nColor.prototype.isColor = true;\nColor.prototype.r = 1;\nColor.prototype.g = 1;\nColor.prototype.b = 1;\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement == 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.prototype.slice.call( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nSource.prototype.isSource = true;\n\nlet textureId = 0;\n\nclass Texture$1 extends EventDispatcher {\n\n\tconstructor( image = Texture$1.DEFAULT_IMAGE, mapping = Texture$1.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = 1, encoding = LinearEncoding ) {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\t// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\n\t\t//\n\t\t// Also changing the encoding after already used by a Material will not automatically make the Material\n\t\t// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\n\t\tthis.encoding = encoding;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.encoding = source.encoding;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\ttype: this.type,\n\t\t\tencoding: this.encoding,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nTexture$1.DEFAULT_IMAGE = null;\nTexture$1.DEFAULT_MAPPING = UVMapping;\n\nTexture$1.prototype.isTexture = true;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\t\tthis.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\nVector4.prototype.isVector4 = true;\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass WebGLRenderTarget extends EventDispatcher {\n\n\tconstructor( width, height, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\tthis.texture = new Texture$1( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.flipY = false;\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.internalFormat = options.internalFormat !== undefined ? options.internalFormat : null;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t\tthis.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n\t\tthis.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\n\n\t\tthis.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n\n\t\tthis.samples = options.samples !== undefined ? options.samples : 0;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tthis.texture.image.width = width;\n\t\t\tthis.texture.image.height = height;\n\t\t\tthis.texture.image.depth = depth;\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.texture = source.texture.clone();\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tthis.texture.image = Object.assign( {}, source.texture.image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nWebGLRenderTarget.prototype.isWebGLRenderTarget = true;\n\nclass DataArrayTexture extends Texture$1 {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nDataArrayTexture.prototype.isDataArrayTexture = true;\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width, height, depth ) {\n\n\t\tsuper( width, height );\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nWebGLArrayRenderTarget.prototype.isWebGLArrayRenderTarget = true;\n\nclass Data3DTexture extends Texture$1 {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nData3DTexture.prototype.isData3DTexture = true;\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width, height, depth ) {\n\n\t\tsuper( width, height );\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nWebGL3DRenderTarget.prototype.isWebGL3DRenderTarget = true;\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget {\n\n\tconstructor( width, height, count, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tconst texture = this.texture;\n\n\t\tthis.texture = [];\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.texture[ i ] = texture.clone();\n\t\t\tthis.texture[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.texture.length; i < il; i ++ ) {\n\n\t\t\t\tthis.texture[ i ].image.width = width;\n\t\t\t\tthis.texture[ i ].image.height = height;\n\t\t\t\tthis.texture[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.dispose();\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.viewport.set( 0, 0, this.width, this.height );\n\t\tthis.scissor.set( 0, 0, this.width, this.height );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\t\tthis.depthTexture = source.depthTexture;\n\n\t\tthis.texture.length = 0;\n\n\t\tfor ( let i = 0, il = source.texture.length; i < il; i ++ ) {\n\n\t\t\tthis.texture[ i ] = source.texture[ i ].clone();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nWebGLMultipleRenderTargets.prototype.isWebGLMultipleRenderTargets = true;\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerp( qa, qb, qm, t ) {\n\n\t\tconsole.warn( 'THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.' );\n\t\treturn qm.slerpQuaternions( qa, qb, t );\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tthrow new Error( 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update !== false ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp$1( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q, p ) {\n\n\t\tif ( p !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' );\n\t\t\treturn this.multiplyQuaternions( q, p );\n\n\t\t}\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize();\n\t\t\tthis._onChangeCallback();\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// Derived from http://planning.cs.uiuc.edu/node198.html\n\t\t// Note, this source uses w, x, y, z ordering,\n\t\t// so we swap the order below.\n\n\t\tconst u1 = Math.random();\n\t\tconst sqrt1u1 = Math.sqrt( 1 - u1 );\n\t\tconst sqrtu1 = Math.sqrt( u1 );\n\n\t\tconst u2 = 2 * Math.PI * Math.random();\n\n\t\tconst u3 = 2 * Math.PI * Math.random();\n\n\t\treturn this.set(\n\t\t\tsqrt1u1 * Math.cos( u2 ),\n\t\t\tsqrtu1 * Math.sin( u3 ),\n\t\t\tsqrtu1 * Math.cos( u3 ),\n\t\t\tsqrt1u1 * Math.sin( u2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nQuaternion.prototype.isQuaternion = true;\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' );\n\t\t\treturn this.multiplyVectors( v, w );\n\n\t\t}\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// calculate quat * vector\n\n\t\tconst ix = qw * x + qy * z - qz * y;\n\t\tconst iy = qw * y + qz * x - qx * z;\n\t\tconst iz = qw * z + qx * y - qy * x;\n\t\tconst iw = - qx * x - qy * y - qz * z;\n\n\t\t// calculate result * inverse quat\n\n\t\tthis.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;\n\t\tthis.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;\n\t\tthis.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' );\n\t\t\treturn this.crossVectors( v, w );\n\n\t\t}\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp$1( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// Derived from https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst u = ( Math.random() - 0.5 ) * 2;\n\t\tconst t = Math.random() * Math.PI * 2;\n\t\tconst f = Math.sqrt( 1 - u ** 2 );\n\n\t\tthis.x = f * Math.cos( t );\n\t\tthis.y = f * Math.sin( t );\n\t\tthis.z = u;\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nVector3.prototype.isVector3 = true;\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\tconst x = array[ i ];\n\t\t\tconst y = array[ i + 1 ];\n\t\t\tconst z = array[ i + 2 ];\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = attribute.count; i < l; i ++ ) {\n\n\t\t\tconst x = attribute.getX( i );\n\t\t\tconst y = attribute.getY( i );\n\t\t\tconst z = attribute.getZ( i );\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tif ( precise && geometry.attributes != undefined && geometry.attributes.position !== undefined ) {\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tfor ( let i = 0, l = position.count; i < l; i ++ ) {\n\n\t\t\t\t\t_vector$b.fromBufferAttribute( position, i ).applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t}\n\n\t\t\t\t_box$3.copy( geometry.boundingBox );\n\t\t\t\t_box$3.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$3 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$3.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$3, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$3 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$3, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\tconst clampedPoint = _vector$b.copy( point ).clamp( this.min, this.max );\n\n\t\treturn clampedPoint.sub( point ).length();\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tthis.getCenter( target.center );\n\n\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nBox3.prototype.isBox3 = true;\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$3 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _toFarthestPoint = /*@__PURE__*/ new Vector3();\nconst _toPoint = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$2.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\t// from https://github.com/juj/MathGeoLib/blob/2940b99b99cfe575dd45103ef20f4019dee15b54/src/Geometry/Sphere.cpp#L649-L671\n\n\t\t_toPoint.subVectors( point, this.center );\n\n\t\tconst lengthSq = _toPoint.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\t\t\tconst missingRadiusHalf = ( length - this.radius ) * 0.5;\n\n\t\t\t// Nudge this sphere towards the target point. Add half the missing distance to radius,\n\t\t\t// and the other half to position. This gives a tighter enclosure, instead of if\n\t\t\t// the whole missing distance were just added to radius.\n\n\t\t\tthis.center.add( _toPoint.multiplyScalar( missingRadiusHalf / length ) );\n\t\t\tthis.radius += missingRadiusHalf;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\t// from https://github.com/juj/MathGeoLib/blob/2940b99b99cfe575dd45103ef20f4019dee15b54/src/Geometry/Sphere.cpp#L759-L769\n\n\t\t// To enclose another sphere into this sphere, we only need to enclose two points:\n\t\t// 1) Enclose the farthest point on the other sphere into this sphere.\n\t\t// 2) Enclose the opposite point of the farthest point into this sphere.\n\n\t\t if ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t _toFarthestPoint.set( 0, 0, 1 ).multiplyScalar( sphere.radius );\n\n\n\t\t} else {\n\n\t\t\t_toFarthestPoint.subVectors( sphere.center, this.center ).normalize().multiplyScalar( sphere.radius );\n\n\t\t}\n\n\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _toFarthestPoint ) );\n\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _toFarthestPoint ) );\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.direction ).multiplyScalar( t ).add( this.origin );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segDir ).multiplyScalar( s1 ).add( _segCenter );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if both t0 and t1 are behind the ray - if so, return null\n\t\tif ( t0 < 0 && t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\t// These lines also handle the case where tmin or tmax is NaN\n\t\t// (result of 0 * Infinity). x !== x returns true if x is NaN\n\n\t\tif ( tymin > tmin || tmin !== tmin ) tmin = tymin;\n\n\t\tif ( tymax < tmax || tmax !== tmax ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor() {\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m, n ) {\n\n\t\tif ( n !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' );\n\t\t\treturn this.multiplyMatrices( m, n );\n\n\t\t}\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, x,\n\t\t\t0, 1, 0, y,\n\t\t\t0, 0, 1, z,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$2.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far ) {\n\n\t\tif ( far === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\t\tconst c = - ( far + near ) / ( far - near );\n\t\tconst d = - 2 * far * near / ( far - near );\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a;\tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b;\tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c;\tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\t\tconst z = ( far + near ) * p;\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\tte[ 8 ] = 0;\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0;\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = - 2 * p;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = 0;\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nMatrix4.prototype.isMatrix4 = true;\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DefaultOrder ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp$1( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp$1( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp$1( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp$1( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp$1( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp$1( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$1.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$1, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nEuler.prototype.isEuler = true;\n\nEuler.DefaultOrder = 'XYZ';\nEuler.RotationOrders = [ 'XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX' ];\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DefaultUp.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\tconst object = this.children[ i ];\n\n\t\t\tobject.parent = null;\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\tthis.children.length = 0;\n\n\t\treturn this;\n\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tthis.add( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tchildren[ i ].updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DefaultUp = new Vector3( 0, 1, 0 );\nObject3D.DefaultMatrixAutoUpdate = true;\n\nObject3D.prototype.isObject3D = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$1 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\t// arbitrary location outside of triangle?\n\t\t\t// not sure if this is the best idea, maybe should be returning undefined\n\t\t\treturn target.set( - 2, - 1, - 1 );\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\tthis.getBarycoord( point, a, b, c, _v3$1 );\n\n\t\treturn ( _v3$1.x >= 0 ) && ( _v3$1.y >= 0 ) && ( ( _v3$1.x + _v3$1.y ) <= 1 );\n\n\t}\n\n\tstatic getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) {\n\n\t\tthis.getBarycoord( point, p1, p2, p3, _v3$1 );\n\n\t\ttarget.set( 0, 0 );\n\t\ttarget.addScaledVector( uv1, _v3$1.x );\n\t\ttarget.addScaledVector( uv2, _v3$1.y );\n\t\ttarget.addScaledVector( uv3, _v3$1.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetUV( point, uv1, uv2, uv3, target ) {\n\n\t\treturn Triangle.getUV( point, this.a, this.b, this.c, uv1, uv2, uv3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nlet materialId = 0;\n\nclass Material$1 extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.fog = true;\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Material: \\'' + key + '\\' parameter is undefined.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// for backward compatibility if shading is set in the constructor\n\t\t\tif ( key === 'shading' ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\t\t\t\tthis.flatShading = ( newValue === FlatShading ) ? true : false;\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': \\'' + key + '\\' is not a property of this material.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = this.transparent;\n\n\t\tdata.depthFunc = this.depthFunc;\n\t\tdata.depthTest = this.depthTest;\n\t\tdata.depthWrite = this.depthWrite;\n\t\tdata.colorWrite = this.colorWrite;\n\n\t\tdata.stencilWrite = this.stencilWrite;\n\t\tdata.stencilWriteMask = this.stencilWriteMask;\n\t\tdata.stencilFunc = this.stencilFunc;\n\t\tdata.stencilRef = this.stencilRef;\n\t\tdata.stencilFuncMask = this.stencilFuncMask;\n\t\tdata.stencilFail = this.stencilFail;\n\t\tdata.stencilZFail = this.stencilZFail;\n\t\tdata.stencilZPass = this.stencilZPass;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = this.alphaToCoverage;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha;\n\n\t\tif ( this.wireframe === true ) data.wireframe = this.wireframe;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = this.flatShading;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.fog = source.fog;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nMaterial$1.prototype.isMaterial = true;\n\nMaterial$1.fromType = function ( /*type*/ ) {\n\n\t// TODO: Behavior added in Materials.js\n\n\treturn null;\n\n};\n\nclass MeshBasicMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized === true;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRange = { offset: 0, count: - 1 };\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tcopyColorsArray( colors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = colors.length; i < l; i ++ ) {\n\n\t\t\tlet color = colors[ i ];\n\n\t\t\tif ( color === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyColorsArray(): color is undefined', i );\n\t\t\t\tcolor = new Color();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = color.r;\n\t\t\tarray[ offset ++ ] = color.g;\n\t\t\tarray[ offset ++ ] = color.b;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector2sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector2();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector3sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector3();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyVector4sArray( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector4();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\t\t\tarray[ offset ++ ] = vector.w;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\treturn this.array[ index * this.itemSize ];\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 1 ];\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 2 ];\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 3 ];\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.prototype.slice.call( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\t\tif ( this.updateRange.offset !== 0 || this.updateRange.count !== - 1 ) data.updateRange = this.updateRange;\n\n\t\treturn data;\n\n\t}\n\n}\n\nBufferAttribute.prototype.isBufferAttribute = true;\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nFloat16BufferAttribute.prototype.isFloat16BufferAttribute = true;\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$1 = 0;\n\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'id', { value: _id$1 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$1.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$1.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$1.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$1.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$1.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$1.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$1.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$1.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst indices = index.array;\n\t\tconst positions = attributes.position.array;\n\t\tconst normals = attributes.normal.array;\n\t\tconst uvs = attributes.uv.array;\n\n\t\tconst nVertices = positions.length / 3;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) );\n\n\t\t}\n\n\t\tconst tangents = this.getAttribute( 'tangent' ).array;\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < nVertices; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromArray( positions, a * 3 );\n\t\t\tvB.fromArray( positions, b * 3 );\n\t\t\tvC.fromArray( positions, c * 3 );\n\n\t\t\tuvA.fromArray( uvs, a * 2 );\n\t\t\tuvB.fromArray( uvs, b * 2 );\n\t\t\tuvC.fromArray( uvs, c * 2 );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: indices.length\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindices[ j + 0 ],\n\t\t\t\t\tindices[ j + 1 ],\n\t\t\t\t\tindices[ j + 2 ]\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromArray( normals, v * 3 );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangents[ v * 4 ] = tmp.x;\n\t\t\ttangents[ v * 4 + 1 ] = tmp.y;\n\t\t\ttangents[ v * 4 + 2 ] = tmp.z;\n\t\t\ttangents[ v * 4 + 3 ] = w;\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( indices[ j + 0 ] );\n\t\t\t\thandleVertex( indices[ j + 1 ] );\n\t\t\t\thandleVertex( indices[ j + 2 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tmerge( geometry, offset ) {\n\n\t\tif ( ! ( geometry && geometry.isBufferGeometry ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( offset === undefined ) {\n\n\t\t\toffset = 0;\n\n\t\t\tconsole.warn(\n\t\t\t\t'THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. '\n\t\t\t\t+ 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.'\n\t\t\t);\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tif ( geometry.attributes[ key ] === undefined ) continue;\n\n\t\t\tconst attribute1 = attributes[ key ];\n\t\t\tconst attributeArray1 = attribute1.array;\n\n\t\t\tconst attribute2 = geometry.attributes[ key ];\n\t\t\tconst attributeArray2 = attribute2.array;\n\n\t\t\tconst attributeOffset = attribute2.itemSize * offset;\n\t\t\tconst length = Math.min( attributeArray2.length, attributeArray1.length - attributeOffset );\n\n\t\t\tfor ( let i = 0, j = attributeOffset; i < length; i ++, j ++ ) {\n\n\t\t\t\tattributeArray1[ j ] = attributeArray2[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\t return new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\t// geometry generator parameters\n\n\t\tif ( source.parameters !== undefined ) this.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nBufferGeometry.prototype.isBufferGeometry = true;\n\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _tempB = /*@__PURE__*/ new Vector3();\nconst _tempC = /*@__PURE__*/ new Vector3();\n\nconst _morphA = /*@__PURE__*/ new Vector3();\nconst _morphB = /*@__PURE__*/ new Vector3();\nconst _morphC = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$3.copy( geometry.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// Check boundingBox before continuing\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\tlet intersection;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\t\t\tconst uv = geometry.attributes.uv;\n\t\t\tconst uv2 = geometry.attributes.uv2;\n\t\t\tconst groups = geometry.groups;\n\t\t\tconst drawRange = geometry.drawRange;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\t// indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( position !== undefined ) {\n\n\t\t\t\t// non-indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = i;\n\t\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray$2, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n}\n\nMesh.prototype.isMesh = true;\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, material.side !== DoubleSide, point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkBufferGeometryIntersection( object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c ) {\n\n\t_vA$1.fromBufferAttribute( position, a );\n\t_vB$1.fromBufferAttribute( position, b );\n\t_vC$1.fromBufferAttribute( position, c );\n\n\tconst morphInfluences = object.morphTargetInfluences;\n\n\tif ( morphPosition && morphInfluences ) {\n\n\t\t_morphA.set( 0, 0, 0 );\n\t\t_morphB.set( 0, 0, 0 );\n\t\t_morphC.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\tconst influence = morphInfluences[ i ];\n\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t_tempA.fromBufferAttribute( morphAttribute, a );\n\t\t\t_tempB.fromBufferAttribute( morphAttribute, b );\n\t\t\t_tempC.fromBufferAttribute( morphAttribute, c );\n\n\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\t\t\t\t_morphB.addScaledVector( _tempB, influence );\n\t\t\t\t_morphC.addScaledVector( _tempC, influence );\n\n\t\t\t} else {\n\n\t\t\t\t_morphA.addScaledVector( _tempA.sub( _vA$1 ), influence );\n\t\t\t\t_morphB.addScaledVector( _tempB.sub( _vB$1 ), influence );\n\t\t\t\t_morphC.addScaledVector( _tempC.sub( _vC$1 ), influence );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_vA$1.add( _morphA );\n\t\t_vB$1.add( _morphB );\n\t\t_vC$1.add( _morphC );\n\n\t}\n\n\tif ( object.isSkinnedMesh ) {\n\n\t\tobject.boneTransform( a, _vA$1 );\n\t\tobject.boneTransform( b, _vB$1 );\n\t\tobject.boneTransform( c, _vC$1 );\n\n\t}\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv2 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv2, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv2, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv2, c );\n\n\t\t\tintersection.uv2 = Triangle.getUV( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.extensions = {\n\t\t\tderivatives: false, // set to use derivatives\n\t\t\tfragDepth: false, // set to use fragment depth values\n\t\t\tdrawBuffers: false, // set to use draw buffers\n\t\t\tshaderTextureLOD: false // set to use shader texture LOD\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv2': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tif ( parameters.attributes !== undefined ) {\n\n\t\t\t\tconsole.error( 'THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nShaderMaterial.prototype.isShaderMaterial = true;\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( - e[ 8 ], - e[ 9 ], - e[ 10 ] ).normalize();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nCamera.prototype.isCamera = true;\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nPerspectiveCamera.prototype.isPerspectiveCamera = true;\n\nconst fov = 90, aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget !== true ) {\n\n\t\t\tconsole.error( 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.renderTarget = renderTarget;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\tcameraPX.lookAt( new Vector3( 1, 0, 0 ) );\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\tcameraNX.lookAt( new Vector3( - 1, 0, 0 ) );\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tcameraPY.up.set( 0, 0, 1 );\n\t\tcameraPY.lookAt( new Vector3( 0, 1, 0 ) );\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\tcameraNY.lookAt( new Vector3( 0, - 1, 0 ) );\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\tcameraPZ.lookAt( new Vector3( 0, 0, 1 ) );\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\tcameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst renderTarget = this.renderTarget;\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tconst currentOutputEncoding = renderer.outputEncoding;\n\t\tconst currentToneMapping = renderer.toneMapping;\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.outputEncoding = LinearEncoding;\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0 );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1 );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2 );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3 );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4 );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5 );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t\trenderer.outputEncoding = currentOutputEncoding;\n\t\trenderer.toneMapping = currentToneMapping;\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture$1 {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nCubeTexture.prototype.isCubeTexture = true;\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.encoding = texture.encoding;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nWebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget = true;\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.distanceToPoint( point ) ).add( point );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( direction ).multiplyScalar( t ).add( line.start );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nPlane.prototype.isPlane = true;\n\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$2.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$2 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$2.center.set( 0, 0, 0 );\n\t\t_sphere$2.radius = 0.7071067811865476;\n\t\t_sphere$2.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$2 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = 5126;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\ttype = 5131;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttype = 5123;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = 5122;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = 5125;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = 5124;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = 5120;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = 5121;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = 5121;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute.updateRange;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 ) {\n\n\t\t\t// Not using update ranges\n\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\t} else {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray.subarray( updateRange.offset, updateRange.offset + updateRange.count ) );\n\n\t\t\t}\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar encodings_pars_fragment = \"vec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\";\n\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_vertex = \"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#else\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#endif\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\t#ifdef SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\\n\\t#endif\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n};\\nvec3 clearcoatSpecular = vec3( 0.0 );\\nvec3 sheenSpecular = vec3( 0.0 );\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef USE_CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform ivec2 morphTargetsTextureSize;\\n\\t\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";\n\nvar output_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionAlpha = 1.0;\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\n\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\t#ifdef texture2DLodEXT\\n\\t\\t\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( attenuationDistance == 0.0 ) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";\n\nvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";\n\nvar uv2_pars_fragment = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";\n\nvar uv2_pars_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\";\n\nvar uv2_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$g = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$g = \"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tgl_FragColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\\n\\t#endif\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"#include \\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include \\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\n\nconst fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst ShaderChunk = {\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tencodings_fragment: encodings_fragment,\n\tencodings_pars_fragment: encodings_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_fragment: lightmap_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_vertex: lights_lambert_vertex,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphcolor_vertex: morphcolor_vertex,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\toutput_fragment: output_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tuv2_pars_fragment: uv2_pars_fragment,\n\tuv2_pars_vertex: uv2_pars_vertex,\n\tuv2_vertex: uv2_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$g,\n\tbackground_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tuvTransform: { value: new Matrix3() },\n\t\tuv2Transform: { value: new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // physical\n\t\trefractionRatio: { value: 0.98 } // basic, lambert, phong\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalScale: { value: new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotShadowMap: { value: [] },\n\t\tspotShadowMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: new Matrix3() }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 } // temporary\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\t/* -------------------------------------------------------------------------\n\t//\tCube map shader\n\t ------------------------------------------------------------------------- */\n\n\tcube: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.envmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatNormalScale: { value: new Vector2( 1, 1 ) },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionSamplerSize: { value: new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: new Color( 0x000000 ) },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularColor: { value: new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nfunction WebGLBackground( renderer, cubemaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction render( renderList, scene ) {\n\n\t\tlet forceClear = false;\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tbackground = cubemaps.get( background );\n\n\t\t}\n\n\t\t// Ignore background in AR\n\t\t// TODO: Reconsider this.\n\n\t\tconst xr = renderer.xr;\n\t\tconst session = xr.getSession && xr.getSession();\n\n\t\tif ( session && session.environmentBlendMode === 'additive' ) {\n\n\t\t\tbackground = null;\n\n\t\t}\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.cube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.cube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.cube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// enable code injection for non-built-in material\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// enable code injection for non-built-in material\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tstate.buffers.color.setClear( color.r, color.g, color.b, alpha, premultipliedAlpha );\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, extensions, attributes, capabilities ) {\n\n\tconst maxVertexAttributes = gl.getParameter( 34921 );\n\n\tconst extension = capabilities.isWebGL2 ? null : extensions.get( 'OES_vertex_array_object' );\n\tconst vaoAvailable = capabilities.isWebGL2 || extension !== null;\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\tlet forceUpdate = false;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tif ( vaoAvailable ) {\n\n\t\t\tconst state = getBindingState( geometry, program, material );\n\n\t\t\tif ( currentState !== state ) {\n\n\t\t\t\tcurrentState = state;\n\t\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t\t}\n\n\t\t\tupdateBuffers = needsUpdate( geometry, index );\n\n\t\t\tif ( updateBuffers ) saveCache( geometry, index );\n\n\t\t} else {\n\n\t\t\tconst wireframe = ( material.wireframe === true );\n\n\t\t\tif ( currentState.geometry !== geometry.id ||\n\t\t\t\tcurrentState.program !== program.id ||\n\t\t\t\tcurrentState.wireframe !== wireframe ) {\n\n\t\t\t\tcurrentState.geometry = geometry.id;\n\t\t\t\tcurrentState.program = program.id;\n\t\t\t\tcurrentState.wireframe = wireframe;\n\n\t\t\t\tupdateBuffers = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh === true ) {\n\n\t\t\tupdateBuffers = true;\n\n\t\t}\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, 34963 );\n\n\t\t}\n\n\t\tif ( updateBuffers || forceUpdate ) {\n\n\t\t\tforceUpdate = false;\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( 34963, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.createVertexArray();\n\n\t\treturn extension.createVertexArrayOES();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.bindVertexArray( vao );\n\n\t\treturn extension.bindVertexArrayOES( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\tif ( capabilities.isWebGL2 ) return gl.deleteVertexArray( vao );\n\n\t\treturn extension.deleteVertexArrayOES( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( geometry, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tfor ( const key in geometryAttributes ) {\n\n\t\t\tconst cachedAttribute = cachedAttributes[ key ];\n\t\t\tconst geometryAttribute = geometryAttributes[ key ];\n\n\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\tif ( cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\tattributesNum ++;\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( geometry, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tconst data = {};\n\t\t\tdata.attribute = attribute;\n\n\t\t\tif ( attribute.data ) {\n\n\t\t\t\tdata.data = attribute.data;\n\n\t\t\t}\n\n\t\t\tcache[ key ] = data;\n\n\t\t\tattributesNum ++;\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tconst extension = capabilities.isWebGL2 ? gl : extensions.get( 'ANGLE_instanced_arrays' );\n\n\t\t\textension[ capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE' ]( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset ) {\n\n\t\tif ( capabilities.isWebGL2 === true && ( type === 5124 || type === 5125 ) ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tif ( capabilities.isWebGL2 === false && ( object.isInstancedMesh || geometry.isInstancedBufferGeometry ) ) {\n\n\t\t\tif ( extensions.get( 'ANGLE_instanced_arrays' ) === null ) return;\n\n\t\t}\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( 34962, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( 34962, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\t\tforceUpdate = true;\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatibility\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tlet extension, methodName;\n\n\t\tif ( isWebGL2 ) {\n\n\t\t\textension = gl;\n\t\t\tmethodName = 'drawArraysInstanced';\n\n\t\t} else {\n\n\t\t\textension = extensions.get( 'ANGLE_instanced_arrays' );\n\t\t\tmethodName = 'drawArraysInstancedANGLE';\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\textension[ methodName ]( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( 35633, 36338 ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( 35632, 36338 ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( 35633, 36337 ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( 35632, 36337 ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tconst isWebGL2 = ( typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext ) ||\n\t\t( typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext );\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst drawBuffers = isWebGL2 || extensions.has( 'WEBGL_draw_buffers' );\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\n\tconst maxTextures = gl.getParameter( 34930 );\n\tconst maxVertexTextures = gl.getParameter( 35660 );\n\tconst maxTextureSize = gl.getParameter( 3379 );\n\tconst maxCubemapSize = gl.getParameter( 34076 );\n\n\tconst maxAttributes = gl.getParameter( 34921 );\n\tconst maxVertexUniforms = gl.getParameter( 36347 );\n\tconst maxVaryings = gl.getParameter( 36348 );\n\tconst maxFragmentUniforms = gl.getParameter( 36349 );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\tconst floatFragmentTextures = isWebGL2 || extensions.has( 'OES_texture_float' );\n\tconst floatVertexTextures = vertexTextures && floatFragmentTextures;\n\n\tconst maxSamples = isWebGL2 ? gl.getParameter( 36183 ) : 0;\n\n\treturn {\n\n\t\tisWebGL2: isWebGL2,\n\n\t\tdrawBuffers: drawBuffers,\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\t\tfloatFragmentTextures: floatFragmentTextures,\n\t\tfloatVertexTextures: floatVertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping, camera ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\t\tresetGlobalState();\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture && texture.isRenderTargetTexture === false ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height / 2 );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nOrthographicCamera.prototype.isOrthographicCamera = true;\n\nconst LOD_MIN = 4;\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES$1 = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._lodMax = 0;\n\t\tthis._cubeSize = 0;\n\t\tthis._lodPlanes = [];\n\t\tthis._sizeLods = [];\n\t\tthis._sigmas = [];\n\n\t\tthis._blurMaterial = null;\n\t\tthis._cubemapMaterial = null;\n\t\tthis._equirectMaterial = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\n\t\tthis._setSize( 256 );\n\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\t\tcubeUVRenderTarget.depthBuffer = true;\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\t\t\tthis._compileMaterial( this._cubemapMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\t\t\tthis._compileMaterial( this._equirectMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._dispose();\n\n\t\tif ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();\n\t\tif ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();\n\n\t}\n\n\t// private interface\n\n\t_setSize( cubeSize ) {\n\n\t\tthis._lodMax = Math.floor( Math.log2( cubeSize ) );\n\t\tthis._cubeSize = Math.pow( 2, this._lodMax );\n\n\t}\n\n\t_dispose() {\n\n\t\tif ( this._blurMaterial !== null ) this._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tfor ( let i = 0; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tthis._lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget );\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\tif ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {\n\n\t\t\tthis._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );\n\n\t\t} else { // Equirectangular\n\n\t\t\tthis._setSize( texture.image.width / 4 );\n\n\t\t}\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets() {\n\n\t\tconst width = 3 * Math.max( this._cubeSize, 16 * 7 );\n\t\tconst height = 4 * this._cubeSize - 32;\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tencoding: LinearEncoding,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( width, height, params );\n\n\t\tif ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width ) {\n\n\t\t\tif ( this._pingPongRenderTarget !== null ) {\n\n\t\t\t\tthis._dispose();\n\n\t\t\t}\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( width, height, params );\n\n\t\t\tconst { _lodMax } = this;\n\t\t\t( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );\n\n\t\t\tthis._blurMaterial = _getBlurShader( _lodMax, width, height );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\tconst size = this._cubeSize;\n\n\t\t\t_setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );\n\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\n\t\t\t}\n\n\t\t\tthis._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n\t\tconst mesh = new Mesh( this._lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tconst size = this._cubeSize;\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\n\t\tfor ( let i = 1; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = this._sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES$1 - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES$1;\n\n\t\tif ( samples > MAX_SAMPLES$1 ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES$1}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES$1; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tconst { _lodMax } = this;\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = _lodMax - lodIn;\n\n\t\tconst outputSize = this._sizeLods[ lodOut ];\n\t\tconst x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );\n\t\tconst y = 4 * ( this._cubeSize - outputSize );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\n\n\nfunction _createPlanes( lodMax ) {\n\n\tconst lodPlanes = [];\n\tconst sizeLods = [];\n\tconst sigmas = [];\n\n\tlet lod = lodMax;\n\n\tconst totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n\tfor ( let i = 0; i < totalLods; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\tsizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > lodMax - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\tsigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 1 );\n\t\tconst min = - texelSize / 2;\n\t\tconst max = 1 + texelSize / 2;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\tlodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { lodPlanes, sizeLods, sigmas };\n\n}\n\nfunction _createRenderTarget( width, height, params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( lodMax, width, height ) {\n\n\tconst weights = new Float32Array( MAX_SAMPLES$1 );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new ShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: {\n\t\t\t'n': MAX_SAMPLES$1,\n\t\t\t'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n\t\t\t'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n\t\t\t'CUBEUV_MAX_MIP': `${lodMax}.0`,\n\t\t},\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCubemapMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.needsPMREMUpdate === true ) {\n\n\t\t\t\t\ttexture.needsPMREMUpdate = false;\n\n\t\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( cubeUVmaps.has( texture ) ) {\n\n\t\t\t\t\t\treturn cubeUVmaps.get( texture ).texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\tconst renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function ( capabilities ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\n\t\t\t} else {\n\n\t\t\t\tgetExtension( 'WEBGL_depth_texture' );\n\t\t\t\tgetExtension( 'OES_texture_float' );\n\t\t\t\tgetExtension( 'OES_texture_half_float' );\n\t\t\t\tgetExtension( 'OES_texture_half_float_linear' );\n\t\t\t\tgetExtension( 'OES_standard_derivatives' );\n\t\t\t\tgetExtension( 'OES_element_index_uint' );\n\t\t\t\tgetExtension( 'OES_vertex_array_object' );\n\t\t\t\tgetExtension( 'ANGLE_instanced_arrays' );\n\n\t\t\t}\n\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], 34962 );\n\n\t\t}\n\n\t\t// morph targets\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.update( array[ i ], 34962 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tlet extension, methodName;\n\n\t\tif ( isWebGL2 ) {\n\n\t\t\textension = gl;\n\t\t\tmethodName = 'drawElementsInstanced';\n\n\t\t} else {\n\n\t\t\textension = extensions.get( 'ANGLE_instanced_arrays' );\n\t\t\tmethodName = 'drawElementsInstancedANGLE';\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\textension[ methodName ]( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 4:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase 1:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase 3:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase 2:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase 0:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.frame ++;\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nfunction numericalSort( a, b ) {\n\n\treturn a[ 0 ] - b[ 0 ];\n\n}\n\nfunction absNumericalSort( a, b ) {\n\n\treturn Math.abs( b[ 1 ] ) - Math.abs( a[ 1 ] );\n\n}\n\nfunction denormalize( morph, attribute ) {\n\n\tlet denominator = 1;\n\tconst array = attribute.isInterleavedBufferAttribute ? attribute.data.array : attribute.array;\n\n\tif ( array instanceof Int8Array ) denominator = 127;\n\telse if ( array instanceof Int16Array ) denominator = 32767;\n\telse if ( array instanceof Int32Array ) denominator = 2147483647;\n\telse console.error( 'THREE.WebGLMorphtargets: Unsupported morph attribute data type: ', array );\n\n\tmorph.divideScalar( denominator );\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst influencesList = {};\n\tconst morphInfluences = new Float32Array( 8 );\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector4();\n\n\tconst workInfluences = [];\n\n\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\tworkInfluences[ i ] = [ i, 0 ];\n\n\t}\n\n\tfunction update( object, geometry, material, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tif ( capabilities.isWebGL2 === true ) {\n\n\t\t\t// instead of using attributes, the WebGL 2 code path encodes morph targets\n\t\t\t// into an array of data textures. Each layer represents a single morph target.\n\n\t\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\t\tlet entry = morphTextures.get( geometry );\n\n\t\t\tif ( entry === undefined || entry.count !== morphTargetsCount ) {\n\n\t\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\t\tconst hasMorphPosition = geometry.morphAttributes.position !== undefined;\n\t\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\t\t\t\tconst hasMorphColors = geometry.morphAttributes.color !== undefined;\n\n\t\t\t\tconst morphTargets = geometry.morphAttributes.position || [];\n\t\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\t\t\t\tconst morphColors = geometry.morphAttributes.color || [];\n\n\t\t\t\tlet vertexDataCount = 0;\n\n\t\t\t\tif ( hasMorphPosition === true ) vertexDataCount = 1;\n\t\t\t\tif ( hasMorphNormals === true ) vertexDataCount = 2;\n\t\t\t\tif ( hasMorphColors === true ) vertexDataCount = 3;\n\n\t\t\t\tlet width = geometry.attributes.position.count * vertexDataCount;\n\t\t\t\tlet height = 1;\n\n\t\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t\t}\n\n\t\t\t\tconst buffer = new Float32Array( width * height * 4 * morphTargetsCount );\n\n\t\t\t\tconst texture = new DataArrayTexture( buffer, width, height, morphTargetsCount );\n\t\t\t\ttexture.type = FloatType;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t// fill buffer\n\n\t\t\t\tconst vertexDataStride = vertexDataCount * 4;\n\n\t\t\t\tfor ( let i = 0; i < morphTargetsCount; i ++ ) {\n\n\t\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\t\tconst morphNormal = morphNormals[ i ];\n\t\t\t\t\tconst morphColor = morphColors[ i ];\n\n\t\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\t\tif ( hasMorphPosition === true ) {\n\n\t\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\t\tif ( morphTarget.normalized === true ) denormalize( morph, morphTarget );\n\n\t\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\t\tif ( morphNormal.normalized === true ) denormalize( morph, morphNormal );\n\n\t\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( hasMorphColors === true ) {\n\n\t\t\t\t\t\t\tmorph.fromBufferAttribute( morphColor, j );\n\n\t\t\t\t\t\t\tif ( morphColor.normalized === true ) denormalize( morph, morphColor );\n\n\t\t\t\t\t\t\tbuffer[ offset + stride + 8 ] = morph.x;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 9 ] = morph.y;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 10 ] = morph.z;\n\t\t\t\t\t\t\tbuffer[ offset + stride + 11 ] = ( morphColor.itemSize === 4 ) ? morph.w : 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tentry = {\n\t\t\t\t\tcount: morphTargetsCount,\n\t\t\t\t\ttexture: texture,\n\t\t\t\t\tsize: new Vector2( width, height )\n\t\t\t\t};\n\n\t\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\t\tfunction disposeTexture() {\n\n\t\t\t\t\ttexture.dispose();\n\n\t\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\n\t\t} else {\n\n\t\t\t// When object doesn't have morph target influences defined, we treat it as a 0-length array\n\t\t\t// This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences\n\n\t\t\tconst length = objectInfluences === undefined ? 0 : objectInfluences.length;\n\n\t\t\tlet influences = influencesList[ geometry.id ];\n\n\t\t\tif ( influences === undefined || influences.length !== length ) {\n\n\t\t\t\t// initialise list\n\n\t\t\t\tinfluences = [];\n\n\t\t\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\t\t\tinfluences[ i ] = [ i, 0 ];\n\n\t\t\t\t}\n\n\t\t\t\tinfluencesList[ geometry.id ] = influences;\n\n\t\t\t}\n\n\t\t\t// Collect influences\n\n\t\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\t\tconst influence = influences[ i ];\n\n\t\t\t\tinfluence[ 0 ] = i;\n\t\t\t\tinfluence[ 1 ] = objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tinfluences.sort( absNumericalSort );\n\n\t\t\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\t\t\tif ( i < length && influences[ i ][ 1 ] ) {\n\n\t\t\t\t\tworkInfluences[ i ][ 0 ] = influences[ i ][ 0 ];\n\t\t\t\t\tworkInfluences[ i ][ 1 ] = influences[ i ][ 1 ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tworkInfluences[ i ][ 0 ] = Number.MAX_SAFE_INTEGER;\n\t\t\t\t\tworkInfluences[ i ][ 1 ] = 0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tworkInfluences.sort( numericalSort );\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position;\n\t\t\tconst morphNormals = geometry.morphAttributes.normal;\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < 8; i ++ ) {\n\n\t\t\t\tconst influence = workInfluences[ i ];\n\t\t\t\tconst index = influence[ 0 ];\n\t\t\t\tconst value = influence[ 1 ];\n\n\t\t\t\tif ( index !== Number.MAX_SAFE_INTEGER && value ) {\n\n\t\t\t\t\tif ( morphTargets && geometry.getAttribute( 'morphTarget' + i ) !== morphTargets[ index ] ) {\n\n\t\t\t\t\t\tgeometry.setAttribute( 'morphTarget' + i, morphTargets[ index ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( morphNormals && geometry.getAttribute( 'morphNormal' + i ) !== morphNormals[ index ] ) {\n\n\t\t\t\t\t\tgeometry.setAttribute( 'morphNormal' + i, morphNormals[ index ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmorphInfluences[ i ] = value;\n\t\t\t\t\tmorphInfluencesSum += value;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( morphTargets && geometry.hasAttribute( 'morphTarget' + i ) === true ) {\n\n\t\t\t\t\t\tgeometry.deleteAttribute( 'morphTarget' + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( morphNormals && geometry.hasAttribute( 'morphNormal' + i ) === true ) {\n\n\t\t\t\t\t\tgeometry.deleteAttribute( 'morphNormal' + i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tmorphInfluences[ i ] = 0;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// GLSL shader uses formula baseinfluence * base + sum(target * influence)\n\t\t\t// This allows us to switch between absolute morphs and relative morphs without changing shader code\n\t\t\t// When baseinfluence = 1 - sum(influence), the above is equivalent to sum((target - base) * influence)\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', morphInfluences );\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tattributes.update( object.instanceMatrix, 34962 );\n\n\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\tattributes.update( object.instanceColor, 34962 );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\nconst emptyTexture = new Texture$1();\nconst emptyArrayTexture = new DataArrayTexture();\nconst empty3dTexture = new Data3DTexture();\nconst emptyCubeTexture = new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform2iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform3iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform4iv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform2uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform3uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( arraysEqual( cache, v ) ) return;\n\n\tgl.uniform4uiv( this.addr, v );\n\n\tcopyArray( cache, v );\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2D( v || emptyTexture, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || empty3dTexture, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyArrayTexture, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || empty3dTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tgl.uniform1iv( this.addr, units );\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyArrayTexture, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nfunction SingleUniform( id, activeInfo, addr ) {\n\n\tthis.id = id;\n\tthis.addr = addr;\n\tthis.cache = [];\n\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t// this.path = activeInfo.name; // DEBUG\n\n}\n\nfunction PureArrayUniform( id, activeInfo, addr ) {\n\n\tthis.id = id;\n\tthis.addr = addr;\n\tthis.cache = [];\n\tthis.size = activeInfo.size;\n\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t// this.path = activeInfo.name; // DEBUG\n\n}\n\nPureArrayUniform.prototype.updateCache = function ( data ) {\n\n\tconst cache = this.cache;\n\n\tif ( data instanceof Float32Array && cache.length !== data.length ) {\n\n\t\tthis.cache = new Float32Array( data.length );\n\n\t}\n\n\tcopyArray( cache, data );\n\n};\n\nfunction StructuredUniform( id ) {\n\n\tthis.id = id;\n\n\tthis.seq = [];\n\tthis.map = {};\n\n}\n\nStructuredUniform.prototype.setValue = function ( gl, value, textures ) {\n\n\tconst seq = this.seq;\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ];\n\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t}\n\n};\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nfunction WebGLUniforms( gl, program ) {\n\n\tthis.seq = [];\n\tthis.map = {};\n\n\tconst n = gl.getProgramParameter( program, 35718 );\n\n\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\tparseUniform( info, addr, this );\n\n\t}\n\n}\n\nWebGLUniforms.prototype.setValue = function ( gl, name, value, textures ) {\n\n\tconst u = this.map[ name ];\n\n\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n};\n\nWebGLUniforms.prototype.setOptional = function ( gl, object, name ) {\n\n\tconst v = object[ name ];\n\n\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n};\n\n\n// Static interface\n\nWebGLUniforms.upload = function ( gl, seq, values, textures ) {\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ],\n\t\t\tv = values[ u.id ];\n\n\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t}\n\n\t}\n\n};\n\nWebGLUniforms.seqWithValue = function ( seq, values ) {\n\n\tconst r = [];\n\n\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\tconst u = seq[ i ];\n\t\tif ( u.id in values ) r.push( u );\n\n\t}\n\n\treturn r;\n\n};\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\nlet programIdCount = 0;\n\nfunction handleSource( string, errorLine ) {\n\n\tconst lines = string.split( '\\n' );\n\tconst lines2 = [];\n\n\tconst from = Math.max( errorLine - 6, 0 );\n\tconst to = Math.min( errorLine + 6, lines.length );\n\n\tfor ( let i = from; i < to; i ++ ) {\n\n\t\tlines2.push( ( i + 1 ) + ': ' + lines[ i ] );\n\n\t}\n\n\treturn lines2.join( '\\n' );\n\n}\n\nfunction getEncodingComponents( encoding ) {\n\n\tswitch ( encoding ) {\n\n\t\tcase LinearEncoding:\n\t\t\treturn [ 'Linear', '( value )' ];\n\t\tcase sRGBEncoding:\n\t\t\treturn [ 'sRGB', '( value )' ];\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported encoding:', encoding );\n\t\t\treturn [ 'Linear', '( value )' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, 35713 );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\tconst errorLine = parseInt( /ERROR: 0:(\\d+)/.exec( errors )[ 1 ] );\n\n\t// --enable-privileged-webgl-extension\n\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource( gl.getShaderSource( shader ), errorLine );\n\n}\n\nfunction getTexelEncodingFunction( functionName, encoding ) {\n\n\tconst components = getEncodingComponents( encoding );\n\treturn 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[ 0 ] + components[ 1 ] + '; }';\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'OptimizedCineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nfunction generateExtensions( parameters ) {\n\n\tconst chunks = [\n\t\t( parameters.extensionDerivatives || !! parameters.envMapCubeUVHeight || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ) ? '#extension GL_OES_standard_derivatives : enable' : '',\n\t\t( parameters.extensionFragDepth || parameters.logarithmicDepthBuffer ) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '',\n\t\t( parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ) ? '#extension GL_EXT_draw_buffers : require' : '',\n\t\t( parameters.extensionShaderTextureLOD || parameters.envMap || parameters.transmission ) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : ''\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, 35721 );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === 35674 ) locationSize = 2;\n\t\tif ( info.type === 35675 ) locationSize = 3;\n\t\tif ( info.type === 35676 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nfunction includeReplacer( match, include ) {\n\n\tconst string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst deprecatedUnrollLoopPattern = /#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;\nconst unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n\nfunction unrollLoops( string ) {\n\n\treturn string\n\t\t.replace( unrollLoopPattern, loopReplacer )\n\t\t.replace( deprecatedUnrollLoopPattern, deprecatedLoopReplacer );\n\n}\n\nfunction deprecatedLoopReplacer( match, start, end, snippet ) {\n\n\tconsole.warn( 'WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.' );\n\treturn loopReplacer( match, start, end, snippet );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = 'precision ' + parameters.precision + ' float;\\nprecision ' + parameters.precision + ' int;';\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction generateCubeUVSize( parameters ) {\n\n\tconst imageHeight = parameters.envMapCubeUVHeight;\n\n\tif ( imageHeight === null ) return null;\n\n\tconst maxMip = Math.log2( imageHeight / 32 + 1 ) + 3;\n\n\tconst texelHeight = 1.0 / imageHeight;\n\n\tconst texelWidth = 1.0 / ( 3 * Math.max( Math.pow( 2, maxMip ), 7 * 16 ) );\n\n\treturn { texelWidth, texelHeight, maxMip };\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\tconst envMapCubeUVSize = generateCubeUVSize( parameters );\n\n\tconst customExtensions = parameters.isWebGL2 ? '' : generateExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\tcustomExtensions,\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\n\t\t\tparameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '',\n\n\t\t\t'#define MAX_BONES ' + parameters.maxBones,\n\t\t\t( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',\n\t\t\t( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.objectSpaceNormalMap ) ? '#define OBJECTSPACE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.tangentSpaceNormalMap ) ? '#define TANGENTSPACE_NORMALMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUvs ? '#define USE_UV' : '',\n\t\t\tparameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\t\t\tparameters.useVertexTexture ? '#define BONE_TEXTURE' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphColors && parameters.isWebGL2 ) ? '#define USE_MORPHCOLORS' : '',\n\t\t\t( parameters.morphTargetsCount > 0 && parameters.isWebGL2 ) ? '#define MORPHTARGETS_TEXTURE' : '',\n\t\t\t( parameters.morphTargetsCount > 0 && parameters.isWebGL2 ) ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '',\n\t\t\t( parameters.morphTargetsCount > 0 && parameters.isWebGL2 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\t( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )',\n\n\t\t\t'\tattribute vec3 morphTarget0;',\n\t\t\t'\tattribute vec3 morphTarget1;',\n\t\t\t'\tattribute vec3 morphTarget2;',\n\t\t\t'\tattribute vec3 morphTarget3;',\n\n\t\t\t'\t#ifdef USE_MORPHNORMALS',\n\n\t\t\t'\t\tattribute vec3 morphNormal0;',\n\t\t\t'\t\tattribute vec3 morphNormal1;',\n\t\t\t'\t\tattribute vec3 morphNormal2;',\n\t\t\t'\t\tattribute vec3 morphNormal3;',\n\n\t\t\t'\t#else',\n\n\t\t\t'\t\tattribute vec3 morphTarget4;',\n\t\t\t'\t\tattribute vec3 morphTarget5;',\n\t\t\t'\t\tattribute vec3 morphTarget6;',\n\t\t\t'\t\tattribute vec3 morphTarget7;',\n\n\t\t\t'\t#endif',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tcustomExtensions,\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\t( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',\n\t\t\t( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.objectSpaceNormalMap ) ? '#define OBJECTSPACE_NORMALMAP' : '',\n\t\t\t( parameters.normalMap && parameters.tangentSpaceNormalMap ) ? '#define TANGENTSPACE_NORMALMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\n\t\t\tparameters.vertexTangents ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUvs ? '#define USE_UV' : '',\n\t\t\tparameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\t\t\t( parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ) ? '#define USE_LOGDEPTHBUF_EXT' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.opaque ? '#define OPAQUE' : '',\n\n\t\t\tShaderChunk[ 'encodings_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputEncoding ),\n\n\t\t\tparameters.depthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isWebGL2 && parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\t'precision mediump sampler2DArray;',\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, 35633, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, 35632, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\t// check for link errors\n\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\tlet runnable = true;\n\t\tlet haveDiagnostics = true;\n\n\t\tif ( gl.getProgramParameter( program, 35714 ) === false ) {\n\n\t\t\trunnable = false;\n\n\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\tconsole.error(\n\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, 35715 ) + '\\n\\n' +\n\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\tfragmentErrors\n\t\t\t);\n\n\t\t} else if ( programLog !== '' ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\thaveDiagnostics = false;\n\n\t\t}\n\n\t\tif ( haveDiagnostics ) {\n\n\t\t\tthis.diagnostics = {\n\n\t\t\t\trunnable: runnable,\n\n\t\t\t\tprogramLog: programLog,\n\n\t\t\t\tvertexShader: {\n\n\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t},\n\n\t\t\t\tfragmentShader: {\n\n\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t}\n\n\t}\n\n\t// Clean up\n\n\t// Crashes in iOS9 and iOS10. #18402\n\t// gl.detachShader( program, glVertexShader );\n\t// gl.detachShader( program, glFragmentShader );\n\n\tgl.deleteShader( glVertexShader );\n\tgl.deleteShader( glFragmentShader );\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage.code );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\n\t\tif ( cache.has( material ) === false ) {\n\n\t\t\tcache.set( material, new Set() );\n\n\t\t}\n\n\t\treturn cache.get( material );\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\n\t\tif ( cache.has( code ) === false ) {\n\n\t\t\tconst stage = new WebGLShaderStage( code );\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn cache.get( code );\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor( code ) {\n\n\t\tthis.id = _id ++;\n\n\t\tthis.code = code;\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst programs = [];\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst floatVertexTextures = capabilities.floatVertexTextures;\n\tconst maxVertexUniforms = capabilities.maxVertexUniforms;\n\tconst vertexTextures = capabilities.vertexTextures;\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getMaxBones( object ) {\n\n\t\tconst skeleton = object.skeleton;\n\t\tconst bones = skeleton.bones;\n\n\t\tif ( floatVertexTextures ) {\n\n\t\t\treturn 1024;\n\n\t\t} else {\n\n\t\t\t// default for when object is not specified\n\t\t\t// ( for example when prebuilding shader to be used with multiple objects )\n\t\t\t//\n\t\t\t// - leave some extra space for other uniforms\n\t\t\t// - limit here is ANGLE's 254 max uniform vectors\n\t\t\t// (up to 54 should be safe)\n\n\t\t\tconst nVertexUniforms = maxVertexUniforms;\n\t\t\tconst nVertexMatrices = Math.floor( ( nVertexUniforms - 20 ) / 4 );\n\n\t\t\tconst maxBones = Math.min( nVertexMatrices, bones.length );\n\n\t\t\tif ( maxBones < bones.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Skeleton has ' + bones.length + ' bones. This GPU supports ' + maxBones + '.' );\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\treturn maxBones;\n\n\t\t}\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst geometry = object.geometry;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst envMapCubeUVHeight = ( !! envMap ) && ( envMap.mapping === CubeUVReflectionMapping ) ? envMap.image.height : null;\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tconst maxBones = object.isSkinnedMesh ? getMaxBones( object ) : 0;\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet morphTextureStride = 0;\n\n\t\tif ( geometry.morphAttributes.position !== undefined ) morphTextureStride = 1;\n\t\tif ( geometry.morphAttributes.normal !== undefined ) morphTextureStride = 2;\n\t\tif ( geometry.morphAttributes.color !== undefined ) morphTextureStride = 3;\n\n\t\t//\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tconst useAlphaTest = material.alphaTest > 0;\n\t\tconst useClearcoat = material.clearcoat > 0;\n\n\t\tconst parameters = {\n\n\t\t\tisWebGL2: isWebGL2,\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderName: material.type,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tinstancing: object.isInstancedMesh === true,\n\t\t\tinstancingColor: object.isInstancedMesh === true && object.instanceColor !== null,\n\n\t\t\tsupportsVertexTextures: vertexTextures,\n\t\t\toutputEncoding: ( currentRenderTarget === null ) ? renderer.outputEncoding : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.encoding : LinearEncoding ),\n\t\t\tmap: !! material.map,\n\t\t\tmatcap: !! material.matcap,\n\t\t\tenvMap: !! envMap,\n\t\t\tenvMapMode: envMap && envMap.mapping,\n\t\t\tenvMapCubeUVHeight: envMapCubeUVHeight,\n\t\t\tlightMap: !! material.lightMap,\n\t\t\taoMap: !! material.aoMap,\n\t\t\temissiveMap: !! material.emissiveMap,\n\t\t\tbumpMap: !! material.bumpMap,\n\t\t\tnormalMap: !! material.normalMap,\n\t\t\tobjectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,\n\t\t\ttangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tdecodeVideoTexture: !! material.map && ( material.map.isVideoTexture === true ) && ( material.map.encoding === sRGBEncoding ),\n\n\t\t\tclearcoat: useClearcoat,\n\t\t\tclearcoatMap: useClearcoat && !! material.clearcoatMap,\n\t\t\tclearcoatRoughnessMap: useClearcoat && !! material.clearcoatRoughnessMap,\n\t\t\tclearcoatNormalMap: useClearcoat && !! material.clearcoatNormalMap,\n\n\t\t\tdisplacementMap: !! material.displacementMap,\n\t\t\troughnessMap: !! material.roughnessMap,\n\t\t\tmetalnessMap: !! material.metalnessMap,\n\t\t\tspecularMap: !! material.specularMap,\n\t\t\tspecularIntensityMap: !! material.specularIntensityMap,\n\t\t\tspecularColorMap: !! material.specularColorMap,\n\n\t\t\topaque: material.transparent === false && material.blending === NormalBlending,\n\n\t\t\talphaMap: !! material.alphaMap,\n\t\t\talphaTest: useAlphaTest,\n\n\t\t\tgradientMap: !! material.gradientMap,\n\n\t\t\tsheen: material.sheen > 0,\n\t\t\tsheenColorMap: !! material.sheenColorMap,\n\t\t\tsheenRoughnessMap: !! material.sheenRoughnessMap,\n\n\t\t\ttransmission: material.transmission > 0,\n\t\t\ttransmissionMap: !! material.transmissionMap,\n\t\t\tthicknessMap: !! material.thicknessMap,\n\n\t\t\tcombine: material.combine,\n\n\t\t\tvertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n\t\t\tvertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap,\n\t\t\tuvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap,\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog,\n\t\t\tfogExp2: ( fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: !! material.flatShading,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true && maxBones > 0,\n\t\t\tmaxBones: maxBones,\n\t\t\tuseVertexTexture: floatVertexTextures,\n\n\t\t\tmorphTargets: geometry.morphAttributes.position !== undefined,\n\t\t\tmorphNormals: geometry.morphAttributes.normal !== undefined,\n\t\t\tmorphColors: geometry.morphAttributes.color !== undefined,\n\t\t\tmorphTargetsCount: morphTargetsCount,\n\t\t\tmorphTextureStride: morphTextureStride,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping,\n\t\t\tphysicallyCorrectLights: renderer.physicallyCorrectLights,\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tdepthPacking: ( material.depthPacking !== undefined ) ? material.depthPacking : false,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionDerivatives: material.extensions && material.extensions.derivatives,\n\t\t\textensionFragDepth: material.extensions && material.extensions.fragDepth,\n\t\t\textensionDrawBuffers: material.extensions && material.extensions.drawBuffers,\n\t\t\textensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,\n\n\t\t\trendererExtensionFragDepth: isWebGL2 || extensions.has( 'EXT_frag_depth' ),\n\t\t\trendererExtensionDrawBuffers: isWebGL2 || extensions.has( 'WEBGL_draw_buffers' ),\n\t\t\trendererExtensionShaderTextureLod: isWebGL2 || extensions.has( 'EXT_shader_texture_lod' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputEncoding );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputEncoding );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.envMapCubeUVHeight );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.vertexUvs );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.maxBones );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.morphAttributeCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.isWebGL2 )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.map )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.lightMap )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.aoMap )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.emissiveMap )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.bumpMap )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.normalMap )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.objectSpaceNormalMap )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.tangentSpaceNormalMap )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.clearcoatMap )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.clearcoatRoughnessMap )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.clearcoatNormalMap )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.displacementMap )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.specularMap )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.roughnessMap )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.metalnessMap )\n\t\t\t_programLayers.enable( 21 );\n\t\tif ( parameters.gradientMap )\n\t\t\t_programLayers.enable( 22 );\n\t\tif ( parameters.alphaMap )\n\t\t\t_programLayers.enable( 23 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 24 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 25 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 26 );\n\t\tif ( parameters.vertexUvs )\n\t\t\t_programLayers.enable( 27 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 28 );\n\t\tif ( parameters.uvsVertexOnly )\n\t\t\t_programLayers.enable( 29 );\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 30 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.useVertexTexture )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.morphColors )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.physicallyCorrectLights )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.depthPacking )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.specularIntensityMap )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.specularColorMap )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.transmissionMap )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.thicknessMap )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.sheenColorMap )\n\t\t\t_programLayers.enable( 21 );\n\t\tif ( parameters.sheenRoughnessMap )\n\t\t\t_programLayers.enable( 22 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 23 );\n\t\tif ( parameters.opaque )\n\t\t\t_programLayers.enable( 24 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tlet list;\n\n\t\tif ( lists.has( scene ) === false ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= lists.get( scene ).length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlists.get( scene ).push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = lists.get( scene )[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 1 : 0 ) - ( lightA.castShadow ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions, capabilities ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotShadowMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: []\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights, physicallyCorrectLights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\n\t\tlights.sort( shadowCastingLightsFirst );\n\n\t\t// artist-friendly light intensity scaling factor\n\t\tconst scaleFactor = ( physicallyCorrectLights !== true ) ? Math.PI : 1;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity * scaleFactor;\n\t\t\t\tg += color.g * intensity * scaleFactor;\n\t\t\t\tb += color.b * intensity * scaleFactor;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity * scaleFactor );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity * scaleFactor );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\t\t\t\t\tstate.spotShadowMatrix[ spotLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\t// (a) intensity is the total visible light emitted\n\t\t\t\t//uniforms.color.copy( color ).multiplyScalar( intensity / ( light.width * light.height * Math.PI ) );\n\n\t\t\t\t// (b) intensity is the brightness of the light\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity * scaleFactor );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity * scaleFactor );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity * scaleFactor );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\t// WebGL 2\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\t// WebGL 1\n\n\t\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t\t} else if ( extensions.has( 'OES_texture_half_float_linear' ) === true ) {\n\n\t\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotShadowMatrix.length = numSpotShadows;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\t\t\t\tuniforms.direction.normalize();\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions, capabilities ) {\n\n\tconst lights = new WebGLLights( extensions, capabilities );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init() {\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights( physicallyCorrectLights ) {\n\n\t\tlights.setup( lightsArray, physicallyCorrectLights );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tlights: lights\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions, capabilities ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tlet renderState;\n\n\t\tif ( renderStates.has( scene ) === false ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions, capabilities );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStates.get( scene ).length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions, capabilities );\n\t\t\t\trenderStates.get( scene ).push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStates.get( scene )[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass MeshDepthMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshDepthMaterial.prototype.isMeshDepthMaterial = true;\n\nclass MeshDistanceMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\tthis.referencePosition = new Vector3();\n\t\tthis.nearDistance = 1;\n\t\tthis.farDistance = 1000;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.fog = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.referencePosition.copy( source.referencePosition );\n\t\tthis.nearDistance = source.nearDistance;\n\t\tthis.farDistance = source.farDistance;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshDistanceMaterial.prototype.isMeshDistanceMaterial = true;\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap( _renderer, _objects, _capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = _capabilities.maxTextureSize;\n\n\tconst shadowSide = { 0: BackSide, 1: FrontSide, 2: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = _renderer.getRenderTarget();\n\t\tconst activeCubeFace = _renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = _renderer.getActiveMipmapLevel();\n\n\t\tconst _state = _renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null && ! shadow.isPointLightShadow && this.type === VSMShadowMap ) {\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null ) {\n\n\t\t\t\tconst pars = { minFilter: NearestFilter, magFilter: NearestFilter, format: RGBAFormat };\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\t_renderer.setRenderTarget( shadow.map );\n\t\t\t_renderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( ! shadow.isPointLightShadow && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\tscope.needsUpdate = false;\n\n\t\t_renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = _objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\t_renderer.setRenderTarget( shadow.mapPass );\n\t\t_renderer.clear();\n\t\t_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\t_renderer.setRenderTarget( shadow.map );\n\t\t_renderer.clear();\n\t\t_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, material, light, shadowCameraNear, shadowCameraFar, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t}\n\n\t\tif ( ( _renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0 ) ||\n\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t( material.alphaMap && material.alphaTest > 0 ) ) {\n\n\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t// appropriate state\n\n\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t}\n\n\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\n\t\t\t}\n\n\t\t\tresult = cachedMaterial;\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tresult.referencePosition.setFromMatrixPosition( light.matrixWorld );\n\t\t\tresult.nearDistance = shadowCameraNear;\n\t\t\tresult.farDistance = shadowCameraFar;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = _objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, groupMaterial, light, shadowCamera.near, shadowCamera.far, type );\n\n\t\t\t\t\t\t\t_renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, material, light, shadowCamera.near, shadowCamera.far, type );\n\n\t\t\t\t\t_renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n}\n\nfunction WebGLState( gl, extensions, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( 2929 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( 2929 );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tif ( depthFunc ) {\n\n\t\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 512 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 519 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 513 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 515 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 514 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 518 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 516 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 517 );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\t\tgl.depthFunc( 515 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tgl.depthFunc( 515 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( 2960 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( 2960 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( 35661 );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( 7938 );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( 3088 );\n\tconst viewportParam = gl.getParameter( 2978 );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, 10241, 9728 );\n\t\tgl.texParameteri( type, 10240, 9728 );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tgl.texImage2D( target + i, 0, 6408, 1, 1, 0, 6408, 5121, data );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ 3553 ] = createTexture( 3553, 3553, 1 );\n\temptyTextures[ 34067 ] = createTexture( 34067, 34069, 6 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( 2929 );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( 2884 );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t// 36009 is equivalent to 36160\n\n\t\t\t\tif ( target === 36009 ) {\n\n\t\t\t\t\tcurrentBoundFramebuffers[ 36160 ] = framebuffer;\n\n\t\t\t\t}\n\n\t\t\t\tif ( target === 36160 ) {\n\n\t\t\t\t\tcurrentBoundFramebuffers[ 36009 ] = framebuffer;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tif ( renderTarget.isWebGLMultipleRenderTargets ) {\n\n\t\t\t\tconst textures = renderTarget.texture;\n\n\t\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== 36064 ) {\n\n\t\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tdrawBuffers[ i ] = 36064 + i;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\t\tneedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( drawBuffers[ 0 ] !== 36064 ) {\n\n\t\t\t\t\tdrawBuffers[ 0 ] = 36064;\n\n\t\t\t\t\tneedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== 1029 ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = 1029;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tif ( capabilities.isWebGL2 ) {\n\n\t\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t\t} else {\n\n\t\t\t\textensions.get( 'WEBGL_draw_buffers' ).drawBuffersWEBGL( drawBuffers );\n\n\t\t\t}\n\n\t\t}\n\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: 32774,\n\t\t[ SubtractEquation ]: 32778,\n\t\t[ ReverseSubtractEquation ]: 32779\n\t};\n\n\tif ( isWebGL2 ) {\n\n\t\tequationToGL[ MinEquation ] = 32775;\n\t\tequationToGL[ MaxEquation ] = 32776;\n\n\t} else {\n\n\t\tconst extension = extensions.get( 'EXT_blend_minmax' );\n\n\t\tif ( extension !== null ) {\n\n\t\t\tequationToGL[ MinEquation ] = extension.MIN_EXT;\n\t\t\tequationToGL[ MaxEquation ] = extension.MAX_EXT;\n\n\t\t}\n\n\t}\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: 0,\n\t\t[ OneFactor ]: 1,\n\t\t[ SrcColorFactor ]: 768,\n\t\t[ SrcAlphaFactor ]: 770,\n\t\t[ SrcAlphaSaturateFactor ]: 776,\n\t\t[ DstColorFactor ]: 774,\n\t\t[ DstAlphaFactor ]: 772,\n\t\t[ OneMinusSrcColorFactor ]: 769,\n\t\t[ OneMinusSrcAlphaFactor ]: 771,\n\t\t[ OneMinusDstColorFactor ]: 775,\n\t\t[ OneMinusDstAlphaFactor ]: 773\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( 3042 );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( 3042 );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( 32774 );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 1, 771, 1, 771 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 1, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 769, 0, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 768, 0, 770 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 770, 771, 1, 771 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 770, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( 0, 769, 0, 1 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( 0, 768 );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = null;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( 2884 )\n\t\t\t: enable( 2884 );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( 32926 )\n\t\t\t: disable( 32926 );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( 2304 );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( 2305 );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( 2884 );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( 1029 );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( 1028 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( 1032 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( 2884 );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( 32823 );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( 32823 );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( 3089 );\n\n\t\t} else {\n\n\t\t\tdisable( 3089 );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = 33984 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture ) {\n\n\t\tif ( currentTextureSlot === null ) {\n\n\t\t\tactiveTexture();\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ currentTextureSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( 3042 );\n\t\tgl.disable( 2884 );\n\t\tgl.disable( 2929 );\n\t\tgl.disable( 32823 );\n\t\tgl.disable( 3089 );\n\t\tgl.disable( 2960 );\n\t\tgl.disable( 32926 );\n\n\t\tgl.blendEquation( 32774 );\n\t\tgl.blendFunc( 1, 0 );\n\t\tgl.blendFuncSeparate( 1, 0, 1, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( 513 );\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( 519, 0, 0xffffffff );\n\t\tgl.stencilOp( 7680, 7680, 7680 );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( 1029 );\n\t\tgl.frontFace( 2305 );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( 33984 );\n\n\t\tgl.bindFramebuffer( 36160, null );\n\n\t\tif ( isWebGL2 === true ) {\n\n\t\t\tgl.bindFramebuffer( 36009, null );\n\t\t\tgl.bindFramebuffer( 36008, null );\n\n\t\t}\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\tconst maxTextures = capabilities.maxTextures;\n\tconst maxCubemapSize = capabilities.maxCubemapSize;\n\tconst maxTextureSize = capabilities.maxTextureSize;\n\tconst maxSamples = capabilities.maxSamples;\n\tconst multisampledRTTExt = extensions.has( 'WEBGL_multisampled_render_to_texture' ) ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : null;\n\tconst supportsInvalidateFramebuffer = /OculusBrowser/g.test( navigator.userAgent );\n\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\tconst _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsPowerOfTwo, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( image.width > maxSize || image.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( image.width, image.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 || needsPowerOfTwo === true ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\t\tconst floor = needsPowerOfTwo ? floorPowerOfTwo : Math.floor;\n\n\t\t\t\tconst width = floor( scale * image.width );\n\t\t\t\tconst height = floor( scale * image.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction isPowerOfTwo$1( image ) {\n\n\t\treturn isPowerOfTwo( image.width ) && isPowerOfTwo( image.height );\n\n\t}\n\n\tfunction textureNeedsPowerOfTwo( texture ) {\n\n\t\tif ( isWebGL2 ) return false;\n\n\t\treturn ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) ||\n\t\t\t( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter );\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture, supportsMips ) {\n\n\t\treturn texture.generateMipmaps && supportsMips &&\n\t\t\ttexture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, encoding, isVideoTexture = false ) {\n\n\t\tif ( isWebGL2 === false ) return glFormat;\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === 6403 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 33326;\n\t\t\tif ( glType === 5131 ) internalFormat = 33325;\n\t\t\tif ( glType === 5121 ) internalFormat = 33321;\n\n\t\t}\n\n\t\tif ( glFormat === 33319 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 33328;\n\t\t\tif ( glType === 5131 ) internalFormat = 33327;\n\t\t\tif ( glType === 5121 ) internalFormat = 33323;\n\n\t\t}\n\n\t\tif ( glFormat === 6408 ) {\n\n\t\t\tif ( glType === 5126 ) internalFormat = 34836;\n\t\t\tif ( glType === 5131 ) internalFormat = 34842;\n\t\t\tif ( glType === 5121 ) internalFormat = ( encoding === sRGBEncoding && isVideoTexture === false ) ? 35907 : 32856;\n\t\t\tif ( glType === 32819 ) internalFormat = 32854;\n\t\t\tif ( glType === 32820 ) internalFormat = 32855;\n\n\t\t}\n\n\t\tif ( internalFormat === 33325 || internalFormat === 33326 ||\n\t\t\tinternalFormat === 33327 || internalFormat === 33328 ||\n\t\t\tinternalFormat === 34842 || internalFormat === 34836 ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image, supportsMips ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t// Fallback filters for non-power-of-2 textures\n\n\tfunction filterFallback( f ) {\n\n\t\tif ( f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter ) {\n\n\t\t\treturn 9728;\n\n\t\t}\n\n\t\treturn 9729;\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t// check if it's necessary to remove the WebGLTexture object\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures ) {\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\t\t\twebglTexture.usedTimes --;\n\n\t\t\t// the WebGLTexture object is not used anymore, remove it\n\n\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\tdeleteTexture( texture );\n\n\t\t\t}\n\n\t\t\t// remove the weak map entry if no WebGLTexture uses the source anymore\n\n\t\t\tif ( Object.keys( webglTextures ).length === 0 ) {\n\n\t\t\t\t_sources.delete( source );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deleteTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\t\tdelete webglTextures[ textureProperties.__cacheKey ];\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglTexture !== undefined ) {\n\n\t\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\t\tinfo.memory.textures --;\n\n\t\t}\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer );\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = texture.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachmentProperties = properties.get( texture[ i ] );\n\n\t\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\t\tinfo.memory.textures --;\n\n\t\t\t\t}\n\n\t\t\t\tproperties.remove( texture[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\tfunction getTextureCacheKey( texture ) {\n\n\t\tconst array = [];\n\n\t\tarray.push( texture.wrapS );\n\t\tarray.push( texture.wrapT );\n\t\tarray.push( texture.magFilter );\n\t\tarray.push( texture.minFilter );\n\t\tarray.push( texture.anisotropy );\n\t\tarray.push( texture.internalFormat );\n\t\tarray.push( texture.format );\n\t\tarray.push( texture.type );\n\t\tarray.push( texture.generateMipmaps );\n\t\tarray.push( texture.premultiplyAlpha );\n\t\tarray.push( texture.flipY );\n\t\tarray.push( texture.unpackAlignment );\n\t\tarray.push( texture.encoding );\n\n\t\treturn array.join();\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 3553, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 35866, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 32879, textureProperties.__webglTexture );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: 10497,\n\t\t[ ClampToEdgeWrapping ]: 33071,\n\t\t[ MirroredRepeatWrapping ]: 33648\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: 9728,\n\t\t[ NearestMipmapNearestFilter ]: 9984,\n\t\t[ NearestMipmapLinearFilter ]: 9986,\n\n\t\t[ LinearFilter ]: 9729,\n\t\t[ LinearMipmapNearestFilter ]: 9985,\n\t\t[ LinearMipmapLinearFilter ]: 9987\n\t};\n\n\tfunction setTextureParameters( textureType, texture, supportsMips ) {\n\n\t\tif ( supportsMips ) {\n\n\t\t\t_gl.texParameteri( textureType, 10242, wrappingToGL[ texture.wrapS ] );\n\t\t\t_gl.texParameteri( textureType, 10243, wrappingToGL[ texture.wrapT ] );\n\n\t\t\tif ( textureType === 32879 || textureType === 35866 ) {\n\n\t\t\t\t_gl.texParameteri( textureType, 32882, wrappingToGL[ texture.wrapR ] );\n\n\t\t\t}\n\n\t\t\t_gl.texParameteri( textureType, 10240, filterToGL[ texture.magFilter ] );\n\t\t\t_gl.texParameteri( textureType, 10241, filterToGL[ texture.minFilter ] );\n\n\t\t} else {\n\n\t\t\t_gl.texParameteri( textureType, 10242, 33071 );\n\t\t\t_gl.texParameteri( textureType, 10243, 33071 );\n\n\t\t\tif ( textureType === 32879 || textureType === 35866 ) {\n\n\t\t\t\t_gl.texParameteri( textureType, 32882, 33071 );\n\n\t\t\t}\n\n\t\t\tif ( texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.' );\n\n\t\t\t}\n\n\t\t\t_gl.texParameteri( textureType, 10240, filterFallback( texture.magFilter ) );\n\t\t\t_gl.texParameteri( textureType, 10241, filterFallback( texture.minFilter ) );\n\n\t\t\tif ( texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension for WebGL 1 and WebGL 2\n\t\t\tif ( isWebGL2 === false && ( texture.type === HalfFloatType && extensions.has( 'OES_texture_half_float_linear' ) === false ) ) return; // verify extension for WebGL 1 only\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tlet forceUpload = false;\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t}\n\n\t\t// create Source <-> WebGLTextures mapping if necessary\n\n\t\tconst source = texture.source;\n\t\tlet webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures === undefined ) {\n\n\t\t\twebglTextures = {};\n\t\t\t_sources.set( source, webglTextures );\n\n\t\t}\n\n\t\t// check if there is already a WebGLTexture object for the given texture parameters\n\n\t\tconst textureCacheKey = getTextureCacheKey( texture );\n\n\t\tif ( textureCacheKey !== textureProperties.__cacheKey ) {\n\n\t\t\t// if not, create a new instance of WebGLTexture\n\n\t\t\tif ( webglTextures[ textureCacheKey ] === undefined ) {\n\n\t\t\t\t// create new entry\n\n\t\t\t\twebglTextures[ textureCacheKey ] = {\n\t\t\t\t\ttexture: _gl.createTexture(),\n\t\t\t\t\tusedTimes: 0\n\t\t\t\t};\n\n\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t// when a new instance of WebGLTexture was created, a texture upload is required\n\t\t\t\t// even if the image contents are identical\n\n\t\t\t\tforceUpload = true;\n\n\t\t\t}\n\n\t\t\twebglTextures[ textureCacheKey ].usedTimes ++;\n\n\t\t\t// every time the texture cache key changes, it's necessary to check if an instance of\n\t\t\t// WebGLTexture can be deleted in order to avoid a memory leak.\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\n\t\t\tif ( webglTexture !== undefined ) {\n\n\t\t\t\twebglTextures[ textureProperties.__cacheKey ].usedTimes --;\n\n\t\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\t\tdeleteTexture( texture );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// store references to cache key and WebGLTexture object\n\n\t\t\ttextureProperties.__cacheKey = textureCacheKey;\n\t\t\ttextureProperties.__webglTexture = webglTextures[ textureCacheKey ].texture;\n\n\t\t}\n\n\t\treturn forceUpload;\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = 3553;\n\n\t\tif ( texture.isDataArrayTexture ) textureType = 35866;\n\t\tif ( texture.isData3DTexture ) textureType = 32879;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture );\n\n\t\tif ( source.version !== source.__currentVersion || forceUpload === true ) {\n\n\t\t\t_gl.pixelStorei( 37440, texture.flipY );\n\t\t\t_gl.pixelStorei( 37441, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( 3317, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( 37443, 0 );\n\n\t\t\tconst needsPowerOfTwo = textureNeedsPowerOfTwo( texture ) && isPowerOfTwo$1( texture.image ) === false;\n\t\t\tlet image = resizeImage( texture.image, needsPowerOfTwo, false, maxTextureSize );\n\t\t\timage = verifyColorSpace( texture, image );\n\n\t\t\tconst supportsMips = isPowerOfTwo$1( image ) || isWebGL2,\n\t\t\t\tglFormat = utils.convert( texture.format, texture.encoding );\n\n\t\t\tlet glType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding, texture.isVideoTexture );\n\n\t\t\tsetTextureParameters( textureType, texture, supportsMips );\n\n\t\t\tlet mipmap;\n\t\t\tconst mipmaps = texture.mipmaps;\n\n\t\t\tconst useTexStorage = ( isWebGL2 && texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( textureProperties.__version === undefined );\n\t\t\tconst levels = getMipLevels( texture, image, supportsMips );\n\n\t\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t\t// populate depth texture with dummy data\n\n\t\t\t\tglInternalFormat = 6402;\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\tif ( texture.type === FloatType ) {\n\n\t\t\t\t\t\tglInternalFormat = 36012;\n\n\t\t\t\t\t} else if ( texture.type === UnsignedIntType ) {\n\n\t\t\t\t\t\tglInternalFormat = 33190;\n\n\t\t\t\t\t} else if ( texture.type === UnsignedInt248Type ) {\n\n\t\t\t\t\t\tglInternalFormat = 35056;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tglInternalFormat = 33189; // WebGL2 requires sized internalformat for glTexImage2D\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( texture.type === FloatType ) {\n\n\t\t\t\t\t\tconsole.error( 'WebGLRenderer: Floating point depth texture requires WebGL2.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// validation checks for WebGL 1\n\n\t\t\t\tif ( texture.format === DepthFormat && glInternalFormat === 6402 ) {\n\n\t\t\t\t\t// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n\t\t\t\t\t// DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\t\tif ( texture.type !== UnsignedShortType && texture.type !== UnsignedIntType ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.' );\n\n\t\t\t\t\t\ttexture.type = UnsignedShortType;\n\t\t\t\t\t\tglType = utils.convert( texture.type );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( texture.format === DepthStencilFormat && glInternalFormat === 6402 ) {\n\n\t\t\t\t\t// Depth stencil textures need the DEPTH_STENCIL internal format\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\t\tglInternalFormat = 34041;\n\n\t\t\t\t\t// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are\n\t\t\t\t\t// DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.\n\t\t\t\t\t// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)\n\t\t\t\t\tif ( texture.type !== UnsignedInt248Type ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.' );\n\n\t\t\t\t\t\ttexture.type = UnsignedInt248Type;\n\t\t\t\t\t\tglType = utils.convert( texture.type );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t//\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 3553, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 && supportsMips ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 3553, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate.texSubImage2D( 3553, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( 3553, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.compressedTexImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 3553, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataArrayTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( 35866, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.texSubImage3D( 35866, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( 35866, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( 32879, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.texSubImage3D( 32879, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( 32879, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 && supportsMips ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 3553, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 3553, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( 3553, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate.texSubImage2D( 3553, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( 3553, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tgenerateMipmap( textureType );\n\n\t\t\t}\n\n\t\t\tsource.__currentVersion = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.activeTexture( 33984 + slot );\n\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\n\t\tif ( source.version !== source.__currentVersion || forceUpload === true ) {\n\n\t\t\t_gl.pixelStorei( 37440, texture.flipY );\n\t\t\t_gl.pixelStorei( 37441, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( 3317, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( 37443, 0 );\n\n\t\t\tconst isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture );\n\t\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\t\tconst cubeImage = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], false, true, maxCubemapSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t\t}\n\n\t\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t\t}\n\n\t\t\tconst image = cubeImage[ 0 ],\n\t\t\t\tsupportsMips = isPowerOfTwo$1( image ) || isWebGL2,\n\t\t\t\tglFormat = utils.convert( texture.format, texture.encoding ),\n\t\t\t\tglType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\n\t\t\tconst useTexStorage = ( isWebGL2 && texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( textureProperties.__version === undefined );\n\t\t\tlet levels = getMipLevels( texture, image, supportsMips );\n\n\t\t\tsetTextureParameters( 34067, texture, supportsMips );\n\n\t\t\tlet mipmaps;\n\n\t\t\tif ( isCompressed ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( 34067, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( 34069 + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( 34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\t\tstate.texStorage2D( 34067, levels, glInternalFormat, cubeImage[ 0 ].width, cubeImage[ 0 ].height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( 34069 + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( 34069 + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\t// We assume images for cube map have the same size.\n\t\t\t\tgenerateMipmap( 34067 );\n\n\t\t\t}\n\n\t\t\tsource.__currentVersion = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tif ( textureTarget === 32879 || textureTarget === 35866 ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( 36160, attachment, textureTarget, properties.get( texture ).__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else {\n\n\t\t\t_gl.framebufferTexture2D( 36160, attachment, textureTarget, properties.get( texture ).__webglTexture, 0 );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, null );\n\n\t}\n\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( 36161, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) {\n\n\t\t\tlet glInternalFormat = 33189;\n\n\t\t\tif ( isMultisample || useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tconst depthTexture = renderTarget.depthTexture;\n\n\t\t\t\tif ( depthTexture && depthTexture.isDepthTexture ) {\n\n\t\t\t\t\tif ( depthTexture.type === FloatType ) {\n\n\t\t\t\t\t\tglInternalFormat = 36012;\n\n\t\t\t\t\t} else if ( depthTexture.type === UnsignedIntType ) {\n\n\t\t\t\t\t\tglInternalFormat = 33190;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( 36160, 36096, 36161, renderbuffer );\n\n\t\t} else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) {\n\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, 35056, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( 36161, samples, 35056, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, 34041, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\n\t\t\t_gl.framebufferRenderbuffer( 36160, 33306, 36161, renderbuffer );\n\n\t\t} else {\n\n\t\t\t// Use the first texture for MRT so far\n\t\t\tconst texture = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture[ 0 ] : renderTarget.texture;\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( 36161, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( 36161, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! properties.get( renderTarget.depthTexture ).__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = properties.get( renderTarget.depthTexture ).__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( 36160, 36096, 3553, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( 36160, 36096, 3553, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( 36160, 33306, 3553, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( 36160, 33306, 3553, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer[ i ] );\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglFramebuffer );\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( 36160, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, 36064, 3553 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tif ( renderTarget.isWebGLMultipleRenderTargets !== true ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( renderTarget.isWebGLMultipleRenderTargets === true );\n\t\tconst supportsMips = isPowerOfTwo$1( renderTarget ) || isWebGL2;\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tif ( capabilities.drawBuffers ) {\n\n\t\t\t\t\tconst textures = renderTarget.texture;\n\n\t\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.' );\n\n\t\t\t\t}\n\n\t\t\t} else if ( ( isWebGL2 && renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer();\n\n\t\t\t\t_gl.bindRenderbuffer( 36161, renderTargetProperties.__webglColorRenderbuffer );\n\n\t\t\t\tconst glFormat = utils.convert( texture.format, texture.encoding );\n\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.encoding );\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t_gl.renderbufferStorageMultisample( 36161, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\tstate.bindFramebuffer( 36160, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t_gl.framebufferRenderbuffer( 36160, 36064, 36161, renderTargetProperties.__webglColorRenderbuffer );\n\t\t\t\t_gl.bindRenderbuffer( 36161, null );\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( 36160, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( 34067, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( 34067, texture, supportsMips );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, 36064, 34069 + i );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tgenerateMipmap( 34067 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tconst textures = renderTarget.texture;\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( 3553, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( 3553, attachment, supportsMips );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, 36064 + i, 3553 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment, supportsMips ) ) {\n\n\t\t\t\t\tgenerateMipmap( 3553 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = 3553;\n\n\t\t\tif ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\tglTextureType = renderTarget.isWebGL3DRenderTarget ? 32879 : 35866;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture, supportsMips );\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, 36064, glTextureType );\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst supportsMips = isPowerOfTwo$1( renderTarget ) || isWebGL2;\n\n\t\tconst textures = renderTarget.isWebGLMultipleRenderTargets === true ? renderTarget.texture : [ renderTarget.texture ];\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {\n\n\t\t\t\tconst target = renderTarget.isWebGLCubeRenderTarget ? 34067 : 3553;\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( target, webglTexture );\n\t\t\t\tgenerateMipmap( target );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( ( isWebGL2 && renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\tconst width = renderTarget.width;\n\t\t\tconst height = renderTarget.height;\n\t\t\tlet mask = 16384;\n\t\t\tconst invalidationArray = [ 36064 ];\n\t\t\tconst depthStyle = renderTarget.stencilBuffer ? 33306 : 36096;\n\n\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\tinvalidationArray.push( depthStyle );\n\n\t\t\t}\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\tconst ignoreDepthValues = ( renderTargetProperties.__ignoreDepthValues !== undefined ) ? renderTargetProperties.__ignoreDepthValues : false;\n\n\t\t\tif ( ignoreDepthValues === false ) {\n\n\t\t\t\tif ( renderTarget.depthBuffer ) mask |= 256;\n\t\t\t\tif ( renderTarget.stencilBuffer ) mask |= 1024;\n\n\t\t\t}\n\n\t\t\tstate.bindFramebuffer( 36008, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\tstate.bindFramebuffer( 36009, renderTargetProperties.__webglFramebuffer );\n\n\t\t\tif ( ignoreDepthValues === true ) {\n\n\t\t\t\t_gl.invalidateFramebuffer( 36008, [ depthStyle ] );\n\t\t\t\t_gl.invalidateFramebuffer( 36009, [ depthStyle ] );\n\n\t\t\t}\n\n\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, 9728 );\n\n\t\t\tif ( supportsInvalidateFramebuffer ) {\n\n\t\t\t\t_gl.invalidateFramebuffer( 36008, invalidationArray );\n\n\t\t\t}\n\n\t\t\tstate.bindFramebuffer( 36008, null );\n\t\t\tstate.bindFramebuffer( 36009, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn Math.min( maxSamples, renderTarget.samples );\n\n\t}\n\n\tfunction useMultisampledRTT( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\treturn isWebGL2 && renderTarget.samples > 0 && extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true && renderTargetProperties.__useRenderToTexture !== false;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst encoding = texture.encoding;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true || texture.format === _SRGBAFormat ) return image;\n\n\t\tif ( encoding !== LinearEncoding ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( encoding === sRGBEncoding ) {\n\n\t\t\t\tif ( isWebGL2 === false ) {\n\n\t\t\t\t\t// in WebGL 1, try to use EXT_sRGB extension and unsized formats\n\n\t\t\t\t\tif ( extensions.has( 'EXT_sRGB' ) === true && format === RGBAFormat ) {\n\n\t\t\t\t\t\ttexture.format = _SRGBAFormat;\n\n\t\t\t\t\t\t// it's not possible to generate mips in WebGL 1 with this extension\n\n\t\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// slow fallback (CPU decode)\n\n\t\t\t\t\t\timage = ImageUtils.sRGBToLinear( image );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture encoding:', encoding );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\tthis.useMultisampledRTT = useMultisampledRTT;\n\n}\n\nfunction WebGLUtils( gl, extensions, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tfunction convert( p, encoding = null ) {\n\n\t\tlet extension;\n\n\t\tif ( p === UnsignedByteType ) return 5121;\n\t\tif ( p === UnsignedShort4444Type ) return 32819;\n\t\tif ( p === UnsignedShort5551Type ) return 32820;\n\n\t\tif ( p === ByteType ) return 5120;\n\t\tif ( p === ShortType ) return 5122;\n\t\tif ( p === UnsignedShortType ) return 5123;\n\t\tif ( p === IntType ) return 5124;\n\t\tif ( p === UnsignedIntType ) return 5125;\n\t\tif ( p === FloatType ) return 5126;\n\n\t\tif ( p === HalfFloatType ) {\n\n\t\t\tif ( isWebGL2 ) return 5131;\n\n\t\t\textension = extensions.get( 'OES_texture_half_float' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.HALF_FLOAT_OES;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( p === AlphaFormat ) return 6406;\n\t\tif ( p === RGBAFormat ) return 6408;\n\t\tif ( p === LuminanceFormat ) return 6409;\n\t\tif ( p === LuminanceAlphaFormat ) return 6410;\n\t\tif ( p === DepthFormat ) return 6402;\n\t\tif ( p === DepthStencilFormat ) return 34041;\n\t\tif ( p === RedFormat ) return 6403;\n\n\t\tif ( p === RGBFormat ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228' );\n\t\t\treturn 6408;\n\n\t\t}\n\n\t\t// WebGL 1 sRGB fallback\n\n\t\tif ( p === _SRGBAFormat ) {\n\n\t\t\textension = extensions.get( 'EXT_sRGB' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.SRGB_ALPHA_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedIntegerFormat ) return 36244;\n\t\tif ( p === RGFormat ) return 33319;\n\t\tif ( p === RGIntegerFormat ) return 33320;\n\t\tif ( p === RGBAIntegerFormat ) return 36249;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( encoding === sRGBEncoding ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC1\n\n\t\tif ( p === RGB_ETC1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc1' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.COMPRESSED_RGB_ETC1_WEBGL;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC2\n\n\t\tif ( p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC2_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( encoding === sRGBEncoding ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) {\n\n\t\t\tif ( isWebGL2 ) return 34042;\n\n\t\t\textension = extensions.get( 'WEBGL_depth_texture' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\treturn extension.UNSIGNED_INT_24_8_WEBGL;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nArrayCamera.prototype.isArrayCamera = true;\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nGroup.prototype.isGroup = true;\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\t\tconst joint = new Group();\n\t\t\t\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\t\t\t\tjoint.visible = false;\n\t\t\t\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\t\t\t\t\t\t// ??\n\t\t\t\t\t\thand.add( joint );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst joint = hand.joints[ inputjoint.jointName ];\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass DepthTexture extends Texture$1 {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format ) {\n\n\t\tformat = format !== undefined ? format : DepthFormat;\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedShortType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps\t= false;\n\n\t}\n\n\n}\n\nDepthTexture.prototype.isDepthTexture = true;\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet xrFrame = null;\n\t\tconst attributes = gl.getContextAttributes();\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst inputSourcesMap = new Map();\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.layers.enable( 1 );\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.layers.enable( 2 );\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraVR = new ArrayCamera();\n\t\tcameraVR.layers.enable( 1 );\n\t\tcameraVR.layers.enable( 2 );\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controller = inputSourcesMap.get( event.inputSource );\n\n\t\t\tif ( controller ) {\n\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tinputSourcesMap.forEach( function ( controller, inputSource ) {\n\n\t\t\t\tcontroller.disconnect( inputSource );\n\n\t\t\t} );\n\n\t\t\tinputSourcesMap.clear();\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn referenceSpace;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tif ( ( session.renderState.layers === undefined ) || ( renderer.capabilities.isWebGL2 === false ) ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: ( session.renderState.layers === undefined ) ? attributes.antialias : true,\n\t\t\t\t\t\talpha: attributes.alpha,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tencoding: renderer.outputEncoding\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? 35056 : 33190;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedShortType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: ( renderer.outputEncoding === sRGBEncoding ) ? 35907 : 32856,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\tencoding: renderer.outputEncoding,\n\t\t\t\t\t\t\tsamples: attributes.antialias ? 4 : 0\n\t\t\t\t\t\t} );\n\n\t\t\t\t\tconst renderTargetProperties = renderer.properties.get( newRenderTarget );\n\t\t\t\t\trenderTargetProperties.__ignoreDepthValues = glProjLayer.ignoreDepthValues;\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\t// Set foveation to maximum.\n\t\t\t\tthis.setFoveation( 1.0 );\n\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\tconst inputSources = session.inputSources;\n\n\t\t\t// Assign inputSources to available controllers\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tinputSourcesMap.set( inputSources[ i ], controllers[ i ] );\n\n\t\t\t}\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst controller = inputSourcesMap.get( inputSource );\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\t\t\t\t\tinputSourcesMap.delete( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\t\t\t\tconst controller = inputSourcesMap.get( inputSource );\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t// although must now be relative to the new union camera.\n\t\t\tconst near2 = near + zOffset;\n\t\t\tconst far2 = far + zOffset;\n\t\t\tconst left2 = left - xOffset;\n\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tcameraVR.near = cameraR.near = cameraL.near = camera.near;\n\t\t\tcameraVR.far = cameraR.far = cameraL.far = camera.far;\n\n\t\t\tif ( _currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraVR.near,\n\t\t\t\t\tdepthFar: cameraVR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraVR.near;\n\t\t\t\t_currentDepthFar = cameraVR.far;\n\n\t\t\t}\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraVR.cameras;\n\n\t\t\tupdateCamera( cameraVR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\tcameraVR.matrixWorld.decompose( cameraVR.position, cameraVR.quaternion, cameraVR.scale );\n\n\t\t\t// update user camera and its children\n\n\t\t\tcamera.position.copy( cameraVR.position );\n\t\t\tcamera.quaternion.copy( cameraVR.quaternion );\n\t\t\tcamera.scale.copy( cameraVR.scale );\n\t\t\tcamera.matrix.copy( cameraVR.matrix );\n\t\t\tcamera.matrixWorld.copy( cameraVR.matrixWorld );\n\n\t\t\tconst children = camera.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tchildren[ i ].updateMatrixWorld( true );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraVR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraVR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraVR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\treturn glProjLayer.fixedFoveation;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\treturn glBaseLayer.fixedFoveation;\n\n\t\t\t}\n\n\t\t\treturn undefined;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( foveation ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = foveation;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = foveation;\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraVRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraVR's camera list\n\n\t\t\t\tif ( views.length !== cameraVR.cameras.length ) {\n\n\t\t\t\t\tcameraVR.cameras.length = 0;\n\t\t\t\t\tcameraVRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst camera = cameras[ i ];\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraVR.matrix.copy( camera.matrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraVRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraVR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst inputSources = session.inputSources;\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst controller = controllers[ i ];\n\t\t\t\tconst inputSource = inputSources[ i ];\n\n\t\t\t\tcontroller.update( inputSource, frame, referenceSpace );\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nfunction WebGLMaterials( renderer, properties ) {\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tuniforms.fogColor.value.copy( fog.color );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\t\t\tif ( material.side === BackSide ) uniforms.bumpScale.value *= - 1;\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\t\t\tif ( material.side === BackSide ) uniforms.normalScale.value.negate();\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst envMap = properties.get( material ).envMap;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\n\t\t\t// artist-friendly light intensity scaling factor\n\t\t\tconst scaleFactor = ( renderer.physicallyCorrectLights !== true ) ? Math.PI : 1;\n\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. specular map\n\t\t// 3. displacementMap map\n\t\t// 4. normal map\n\t\t// 5. bump map\n\t\t// 6. roughnessMap map\n\t\t// 7. metalnessMap map\n\t\t// 8. alphaMap map\n\t\t// 9. emissiveMap map\n\t\t// 10. clearcoat map\n\t\t// 11. clearcoat normal map\n\t\t// 12. clearcoat roughnessMap map\n\t\t// 13. specular intensity map\n\t\t// 14. specular tint map\n\t\t// 15. transmission map\n\t\t// 16. thickness map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.specularMap ) {\n\n\t\t\tuvScaleMap = material.specularMap;\n\n\t\t} else if ( material.displacementMap ) {\n\n\t\t\tuvScaleMap = material.displacementMap;\n\n\t\t} else if ( material.normalMap ) {\n\n\t\t\tuvScaleMap = material.normalMap;\n\n\t\t} else if ( material.bumpMap ) {\n\n\t\t\tuvScaleMap = material.bumpMap;\n\n\t\t} else if ( material.roughnessMap ) {\n\n\t\t\tuvScaleMap = material.roughnessMap;\n\n\t\t} else if ( material.metalnessMap ) {\n\n\t\t\tuvScaleMap = material.metalnessMap;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t} else if ( material.emissiveMap ) {\n\n\t\t\tuvScaleMap = material.emissiveMap;\n\n\t\t} else if ( material.clearcoatMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatMap;\n\n\t\t} else if ( material.clearcoatNormalMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatNormalMap;\n\n\t\t} else if ( material.clearcoatRoughnessMap ) {\n\n\t\t\tuvScaleMap = material.clearcoatRoughnessMap;\n\n\t\t} else if ( material.specularIntensityMap ) {\n\n\t\t\tuvScaleMap = material.specularIntensityMap;\n\n\t\t} else if ( material.specularColorMap ) {\n\n\t\t\tuvScaleMap = material.specularColorMap;\n\n\t\t} else if ( material.transmissionMap ) {\n\n\t\t\tuvScaleMap = material.transmissionMap;\n\n\t\t} else if ( material.thicknessMap ) {\n\n\t\t\tuvScaleMap = material.thicknessMap;\n\n\t\t} else if ( material.sheenColorMap ) {\n\n\t\t\tuvScaleMap = material.sheenColorMap;\n\n\t\t} else if ( material.sheenRoughnessMap ) {\n\n\t\t\tuvScaleMap = material.sheenRoughnessMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\t// backwards compatibility\n\t\t\tif ( uvScaleMap.isWebGLRenderTarget ) {\n\n\t\t\t\tuvScaleMap = uvScaleMap.texture;\n\n\t\t\t}\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities for uv2\n\t\t// 1. ao map\n\t\t// 2. light map\n\n\t\tlet uv2ScaleMap;\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuv2ScaleMap = material.aoMap;\n\n\t\t} else if ( material.lightMap ) {\n\n\t\t\tuv2ScaleMap = material.lightMap;\n\n\t\t}\n\n\t\tif ( uv2ScaleMap !== undefined ) {\n\n\t\t\t// backwards compatibility\n\t\t\tif ( uv2ScaleMap.isWebGLRenderTarget ) {\n\n\t\t\t\tuv2ScaleMap = uv2ScaleMap.texture;\n\n\t\t\t}\n\n\t\t\tif ( uv2ScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuv2ScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uv2Transform.value.copy( uv2ScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. alpha map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\t// uv repeat and offset setting priorities\n\t\t// 1. color map\n\t\t// 2. alpha map\n\n\t\tlet uvScaleMap;\n\n\t\tif ( material.map ) {\n\n\t\t\tuvScaleMap = material.map;\n\n\t\t} else if ( material.alphaMap ) {\n\n\t\t\tuvScaleMap = material.alphaMap;\n\n\t\t}\n\n\t\tif ( uvScaleMap !== undefined ) {\n\n\t\t\tif ( uvScaleMap.matrixAutoUpdate === true ) {\n\n\t\t\t\tuvScaleMap.updateMatrix();\n\n\t\t\t}\n\n\t\t\tuniforms.uvTransform.value.copy( uvScaleMap.matrix );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.roughness.value = material.roughness;\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t}\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t}\n\n\t\tconst envMap = properties.get( material ).envMap;\n\n\t\tif ( envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t}\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tuniforms.referencePosition.value.copy( material.referencePosition );\n\t\tuniforms.nearDistance.value = material.nearDistance;\n\t\tuniforms.farDistance.value = material.farDistance;\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nfunction WebGLRenderer( parameters = {} ) {\n\n\tconst _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(),\n\t\t_context = parameters.context !== undefined ? parameters.context : null,\n\n\t\t_depth = parameters.depth !== undefined ? parameters.depth : true,\n\t\t_stencil = parameters.stencil !== undefined ? parameters.stencil : true,\n\t\t_antialias = parameters.antialias !== undefined ? parameters.antialias : false,\n\t\t_premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,\n\t\t_preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,\n\t\t_powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default',\n\t\t_failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false;\n\n\tlet _alpha;\n\n\tif ( parameters.context !== undefined ) {\n\n\t\t_alpha = _context.getContextAttributes().alpha;\n\n\t} else {\n\n\t\t_alpha = parameters.alpha !== undefined ? parameters.alpha : false;\n\n\t}\n\n\tlet currentRenderList = null;\n\tlet currentRenderState = null;\n\n\t// render() can be called from within a callback triggered by another render.\n\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\tconst renderListStack = [];\n\tconst renderStateStack = [];\n\n\t// public properties\n\n\tthis.domElement = _canvas;\n\n\t// Debug configuration container\n\tthis.debug = {\n\n\t\t/**\n\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t * @type {boolean}\n\t\t */\n\t\tcheckShaderErrors: true\n\t};\n\n\t// clearing\n\n\tthis.autoClear = true;\n\tthis.autoClearColor = true;\n\tthis.autoClearDepth = true;\n\tthis.autoClearStencil = true;\n\n\t// scene graph\n\n\tthis.sortObjects = true;\n\n\t// user-defined clipping\n\n\tthis.clippingPlanes = [];\n\tthis.localClippingEnabled = false;\n\n\t// physically based shading\n\n\tthis.outputEncoding = LinearEncoding;\n\n\t// physical lights\n\n\tthis.physicallyCorrectLights = false;\n\n\t// tone mapping\n\n\tthis.toneMapping = NoToneMapping;\n\tthis.toneMappingExposure = 1.0;\n\n\t// internal properties\n\n\tconst _this = this;\n\n\tlet _isContextLost = false;\n\n\t// internal state cache\n\n\tlet _currentActiveCubeFace = 0;\n\tlet _currentActiveMipmapLevel = 0;\n\tlet _currentRenderTarget = null;\n\tlet _currentMaterialId = - 1;\n\n\tlet _currentCamera = null;\n\n\tconst _currentViewport = new Vector4();\n\tconst _currentScissor = new Vector4();\n\tlet _currentScissorTest = null;\n\n\t//\n\n\tlet _width = _canvas.width;\n\tlet _height = _canvas.height;\n\n\tlet _pixelRatio = 1;\n\tlet _opaqueSort = null;\n\tlet _transparentSort = null;\n\n\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\tlet _scissorTest = false;\n\n\t// frustum\n\n\tconst _frustum = new Frustum();\n\n\t// clipping\n\n\tlet _clippingEnabled = false;\n\tlet _localClippingEnabled = false;\n\n\t// transmission\n\n\tlet _transmissionRenderTarget = null;\n\n\t// camera matrices cache\n\n\tconst _projScreenMatrix = new Matrix4();\n\n\tconst _vector2 = new Vector2();\n\tconst _vector3 = new Vector3();\n\n\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\tfunction getTargetPixelRatio() {\n\n\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t}\n\n\t// initialize\n\n\tlet _gl = _context;\n\n\tfunction getContext( contextNames, contextAttributes ) {\n\n\t\tfor ( let i = 0; i < contextNames.length; i ++ ) {\n\n\t\t\tconst contextName = contextNames[ i ];\n\t\t\tconst context = _canvas.getContext( contextName, contextAttributes );\n\t\t\tif ( context !== null ) return context;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\ttry {\n\n\t\tconst contextAttributes = {\n\t\t\talpha: true,\n\t\t\tdepth: _depth,\n\t\t\tstencil: _stencil,\n\t\t\tantialias: _antialias,\n\t\t\tpremultipliedAlpha: _premultipliedAlpha,\n\t\t\tpreserveDrawingBuffer: _preserveDrawingBuffer,\n\t\t\tpowerPreference: _powerPreference,\n\t\t\tfailIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat\n\t\t};\n\n\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\tif ( 'setAttribute' in _canvas ) _canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t_canvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t_canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\n\t\tif ( _gl === null ) {\n\n\t\t\tconst contextNames = [ 'webgl2', 'webgl', 'experimental-webgl' ];\n\n\t\t\tif ( _this.isWebGL1Renderer === true ) {\n\n\t\t\t\tcontextNames.shift();\n\n\t\t\t}\n\n\t\t\t_gl = getContext( contextNames, contextAttributes );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tif ( getContext( contextNames ) ) {\n\n\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Some experimental-webgl implementations do not have getShaderPrecisionFormat\n\n\t\tif ( _gl.getShaderPrecisionFormat === undefined ) {\n\n\t\t\t_gl.getShaderPrecisionFormat = function () {\n\n\t\t\t\treturn { 'rangeMin': 1, 'rangeMax': 1, 'precision': 1 };\n\n\t\t\t};\n\n\t\t}\n\n\t} catch ( error ) {\n\n\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\tthrow error;\n\n\t}\n\n\tlet extensions, capabilities, state, info;\n\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\tlet utils, bindingStates;\n\n\tfunction initGLContext() {\n\n\t\textensions = new WebGLExtensions( _gl );\n\n\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters );\n\n\t\textensions.init( capabilities );\n\n\t\tutils = new WebGLUtils( _gl, extensions, capabilities );\n\n\t\tstate = new WebGLState( _gl, extensions, capabilities );\n\n\t\tinfo = new WebGLInfo( _gl );\n\t\tproperties = new WebGLProperties();\n\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\tattributes = new WebGLAttributes( _gl, capabilities );\n\t\tbindingStates = new WebGLBindingStates( _gl, extensions, attributes, capabilities );\n\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\tclipping = new WebGLClipping( properties );\n\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\tmaterials = new WebGLMaterials( _this, properties );\n\t\trenderLists = new WebGLRenderLists();\n\t\trenderStates = new WebGLRenderStates( extensions, capabilities );\n\t\tbackground = new WebGLBackground( _this, cubemaps, state, objects, _alpha, _premultipliedAlpha );\n\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\n\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info, capabilities );\n\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info, capabilities );\n\n\t\tinfo.programs = programCache.programs;\n\n\t\t_this.capabilities = capabilities;\n\t\t_this.extensions = extensions;\n\t\t_this.properties = properties;\n\t\t_this.renderLists = renderLists;\n\t\t_this.shadowMap = shadowMap;\n\t\t_this.state = state;\n\t\t_this.info = info;\n\n\t}\n\n\tinitGLContext();\n\n\t// xr\n\n\tconst xr = new WebXRManager( _this, _gl );\n\n\tthis.xr = xr;\n\n\t// API\n\n\tthis.getContext = function () {\n\n\t\treturn _gl;\n\n\t};\n\n\tthis.getContextAttributes = function () {\n\n\t\treturn _gl.getContextAttributes();\n\n\t};\n\n\tthis.forceContextLoss = function () {\n\n\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\tif ( extension ) extension.loseContext();\n\n\t};\n\n\tthis.forceContextRestore = function () {\n\n\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\tif ( extension ) extension.restoreContext();\n\n\t};\n\n\tthis.getPixelRatio = function () {\n\n\t\treturn _pixelRatio;\n\n\t};\n\n\tthis.setPixelRatio = function ( value ) {\n\n\t\tif ( value === undefined ) return;\n\n\t\t_pixelRatio = value;\n\n\t\tthis.setSize( _width, _height, false );\n\n\t};\n\n\tthis.getSize = function ( target ) {\n\n\t\treturn target.set( _width, _height );\n\n\t};\n\n\tthis.setSize = function ( width, height, updateStyle ) {\n\n\t\tif ( xr.isPresenting ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\t_width = width;\n\t\t_height = height;\n\n\t\t_canvas.width = Math.floor( width * _pixelRatio );\n\t\t_canvas.height = Math.floor( height * _pixelRatio );\n\n\t\tif ( updateStyle !== false ) {\n\n\t\t\t_canvas.style.width = width + 'px';\n\t\t\t_canvas.style.height = height + 'px';\n\n\t\t}\n\n\t\tthis.setViewport( 0, 0, width, height );\n\n\t};\n\n\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t};\n\n\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t_width = width;\n\t\t_height = height;\n\n\t\t_pixelRatio = pixelRatio;\n\n\t\t_canvas.width = Math.floor( width * pixelRatio );\n\t\t_canvas.height = Math.floor( height * pixelRatio );\n\n\t\tthis.setViewport( 0, 0, width, height );\n\n\t};\n\n\tthis.getCurrentViewport = function ( target ) {\n\n\t\treturn target.copy( _currentViewport );\n\n\t};\n\n\tthis.getViewport = function ( target ) {\n\n\t\treturn target.copy( _viewport );\n\n\t};\n\n\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\tif ( x.isVector4 ) {\n\n\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t} else {\n\n\t\t\t_viewport.set( x, y, width, height );\n\n\t\t}\n\n\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor() );\n\n\t};\n\n\tthis.getScissor = function ( target ) {\n\n\t\treturn target.copy( _scissor );\n\n\t};\n\n\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\tif ( x.isVector4 ) {\n\n\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t} else {\n\n\t\t\t_scissor.set( x, y, width, height );\n\n\t\t}\n\n\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor() );\n\n\t};\n\n\tthis.getScissorTest = function () {\n\n\t\treturn _scissorTest;\n\n\t};\n\n\tthis.setScissorTest = function ( boolean ) {\n\n\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t};\n\n\tthis.setOpaqueSort = function ( method ) {\n\n\t\t_opaqueSort = method;\n\n\t};\n\n\tthis.setTransparentSort = function ( method ) {\n\n\t\t_transparentSort = method;\n\n\t};\n\n\t// Clearing\n\n\tthis.getClearColor = function ( target ) {\n\n\t\treturn target.copy( background.getClearColor() );\n\n\t};\n\n\tthis.setClearColor = function () {\n\n\t\tbackground.setClearColor.apply( background, arguments );\n\n\t};\n\n\tthis.getClearAlpha = function () {\n\n\t\treturn background.getClearAlpha();\n\n\t};\n\n\tthis.setClearAlpha = function () {\n\n\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t};\n\n\tthis.clear = function ( color = true, depth = true, stencil = true ) {\n\n\t\tlet bits = 0;\n\n\t\tif ( color ) bits |= 16384;\n\t\tif ( depth ) bits |= 256;\n\t\tif ( stencil ) bits |= 1024;\n\n\t\t_gl.clear( bits );\n\n\t};\n\n\tthis.clearColor = function () {\n\n\t\tthis.clear( true, false, false );\n\n\t};\n\n\tthis.clearDepth = function () {\n\n\t\tthis.clear( false, true, false );\n\n\t};\n\n\tthis.clearStencil = function () {\n\n\t\tthis.clear( false, false, true );\n\n\t};\n\n\t//\n\n\tthis.dispose = function () {\n\n\t\t_canvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t_canvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\n\t\trenderLists.dispose();\n\t\trenderStates.dispose();\n\t\tproperties.dispose();\n\t\tcubemaps.dispose();\n\t\tcubeuvmaps.dispose();\n\t\tobjects.dispose();\n\t\tbindingStates.dispose();\n\t\tprogramCache.dispose();\n\n\t\txr.dispose();\n\n\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\tif ( _transmissionRenderTarget ) {\n\n\t\t\t_transmissionRenderTarget.dispose();\n\t\t\t_transmissionRenderTarget = null;\n\n\t\t}\n\n\t\tanimation.stop();\n\n\t};\n\n\t// Events\n\n\tfunction onContextLost( event ) {\n\n\t\tevent.preventDefault();\n\n\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t_isContextLost = true;\n\n\t}\n\n\tfunction onContextRestore( /* event */ ) {\n\n\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t_isContextLost = false;\n\n\t\tconst infoAutoReset = info.autoReset;\n\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\tconst shadowMapType = shadowMap.type;\n\n\t\tinitGLContext();\n\n\t\tinfo.autoReset = infoAutoReset;\n\t\tshadowMap.enabled = shadowMapEnabled;\n\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\tshadowMap.type = shadowMapType;\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\tdeallocateMaterial( material );\n\n\t}\n\n\t// Buffer deallocation\n\n\tfunction deallocateMaterial( material ) {\n\n\t\treleaseMaterialProgramReferences( material );\n\n\t\tproperties.remove( material );\n\n\t}\n\n\n\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\tconst programs = properties.get( material ).programs;\n\n\t\tif ( programs !== undefined ) {\n\n\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t} );\n\n\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// Buffer rendering\n\n\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t//\n\n\t\tlet index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\n\t\t//\n\n\t\tif ( index === null ) {\n\n\t\t\tif ( position === undefined || position.count === 0 ) return;\n\n\t\t} else if ( index.count === 0 ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t//\n\n\t\tlet rangeFactor = 1;\n\n\t\tif ( material.wireframe === true ) {\n\n\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\t\t\trangeFactor = 2;\n\n\t\t}\n\n\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\tlet attribute;\n\t\tlet renderer = bufferRenderer;\n\n\t\tif ( index !== null ) {\n\n\t\t\tattribute = attributes.get( index );\n\n\t\t\trenderer = indexedBufferRenderer;\n\t\t\trenderer.setIndex( attribute );\n\n\t\t}\n\n\t\t//\n\n\t\tconst dataCount = ( index !== null ) ? index.count : position.count;\n\n\t\tconst rangeStart = geometry.drawRange.start * rangeFactor;\n\t\tconst rangeCount = geometry.drawRange.count * rangeFactor;\n\n\t\tconst groupStart = group !== null ? group.start * rangeFactor : 0;\n\t\tconst groupCount = group !== null ? group.count * rangeFactor : Infinity;\n\n\t\tconst drawStart = Math.max( rangeStart, groupStart );\n\t\tconst drawEnd = Math.min( dataCount, rangeStart + rangeCount, groupStart + groupCount ) - 1;\n\n\t\tconst drawCount = Math.max( 0, drawEnd - drawStart + 1 );\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\t//\n\n\t\tif ( object.isMesh ) {\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\trenderer.setMode( 1 );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.setMode( 4 );\n\n\t\t\t}\n\n\t\t} else if ( object.isLine ) {\n\n\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\trenderer.setMode( 1 );\n\n\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\trenderer.setMode( 2 );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.setMode( 3 );\n\n\t\t\t}\n\n\t\t} else if ( object.isPoints ) {\n\n\t\t\trenderer.setMode( 0 );\n\n\t\t} else if ( object.isSprite ) {\n\n\t\t\trenderer.setMode( 4 );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\tconst instanceCount = Math.min( geometry.instanceCount, geometry._maxInstanceCount );\n\n\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t} else {\n\n\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t}\n\n\t};\n\n\t// Compile\n\n\tthis.compile = function ( scene, camera ) {\n\n\t\tcurrentRenderState = renderStates.get( scene );\n\t\tcurrentRenderState.init();\n\n\t\trenderStateStack.push( currentRenderState );\n\n\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\tcurrentRenderState.setupLights( _this.physicallyCorrectLights );\n\n\t\tscene.traverse( function ( object ) {\n\n\t\t\tconst material = object.material;\n\n\t\t\tif ( material ) {\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\tgetProgram( material2, scene, object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\trenderStateStack.pop();\n\t\tcurrentRenderState = null;\n\n\t};\n\n\t// Animation Loop\n\n\tlet onAnimationFrameCallback = null;\n\n\tfunction onAnimationFrame( time ) {\n\n\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t}\n\n\tfunction onXRSessionStart() {\n\n\t\tanimation.stop();\n\n\t}\n\n\tfunction onXRSessionEnd() {\n\n\t\tanimation.start();\n\n\t}\n\n\tconst animation = new WebGLAnimation();\n\tanimation.setAnimationLoop( onAnimationFrame );\n\n\tif ( typeof self !== 'undefined' ) animation.setContext( self );\n\n\tthis.setAnimationLoop = function ( callback ) {\n\n\t\tonAnimationFrameCallback = callback;\n\t\txr.setAnimationLoop( callback );\n\n\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t};\n\n\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t// Rendering\n\n\tthis.render = function ( scene, camera ) {\n\n\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( _isContextLost === true ) return;\n\n\t\t// update scene graph\n\n\t\tif ( scene.autoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t// update camera matrices and frustum\n\n\t\tif ( camera.parent === null ) camera.updateMatrixWorld();\n\n\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t}\n\n\t\t//\n\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\tcurrentRenderState.init();\n\n\t\trenderStateStack.push( currentRenderState );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled, camera );\n\n\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\tcurrentRenderList.init();\n\n\t\trenderListStack.push( currentRenderList );\n\n\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\tcurrentRenderList.finish();\n\n\t\tif ( _this.sortObjects === true ) {\n\n\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t//\n\n\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t//\n\n\t\tbackground.render( currentRenderList, scene );\n\n\t\t// render scene\n\n\t\tcurrentRenderState.setupLights( _this.physicallyCorrectLights );\n\n\t\tif ( camera.isArrayCamera ) {\n\n\t\t\tconst cameras = camera.cameras;\n\n\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t// _gl.finish();\n\n\t\tbindingStates.resetDefaultState();\n\t\t_currentMaterialId = - 1;\n\t\t_currentCamera = null;\n\n\t\trenderStateStack.pop();\n\n\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t} else {\n\n\t\t\tcurrentRenderState = null;\n\n\t\t}\n\n\t\trenderListStack.pop();\n\n\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t} else {\n\n\t\t\tcurrentRenderList = null;\n\n\t\t}\n\n\t};\n\n\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible ) {\n\n\t\t\tif ( object.isGroup ) {\n\n\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector3.z, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\t\t// update skeleton only once in a frame\n\n\t\t\t\t\tif ( object.skeleton.frame !== info.render.frame ) {\n\n\t\t\t\t\t\tobject.skeleton.update();\n\t\t\t\t\t\tobject.skeleton.frame = info.render.frame;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector3.z, group );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector3.z, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t}\n\n\t}\n\n\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, scene, camera );\n\n\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\tstate.buffers.depth.setTest( true );\n\t\tstate.buffers.depth.setMask( true );\n\t\tstate.buffers.color.setMask( true );\n\n\t\tstate.setPolygonOffset( false );\n\n\t}\n\n\tfunction renderTransmissionPass( opaqueObjects, scene, camera ) {\n\n\t\tconst isWebGL2 = capabilities.isWebGL2;\n\n\t\tif ( _transmissionRenderTarget === null ) {\n\n\t\t\t_transmissionRenderTarget = new WebGLRenderTarget( 1, 1, {\n\t\t\t\tgenerateMipmaps: true,\n\t\t\t\ttype: utils.convert( HalfFloatType ) !== null ? HalfFloatType : UnsignedByteType,\n\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\tsamples: ( isWebGL2 && _antialias === true ) ? 4 : 0\n\t\t\t} );\n\n\t\t}\n\n\t\t_this.getDrawingBufferSize( _vector2 );\n\n\t\tif ( isWebGL2 ) {\n\n\t\t\t_transmissionRenderTarget.setSize( _vector2.x, _vector2.y );\n\n\t\t} else {\n\n\t\t\t_transmissionRenderTarget.setSize( floorPowerOfTwo( _vector2.x ), floorPowerOfTwo( _vector2.y ) );\n\n\t\t}\n\n\t\t//\n\n\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t_this.setRenderTarget( _transmissionRenderTarget );\n\t\t_this.clear();\n\n\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\tconst currentToneMapping = _this.toneMapping;\n\t\t_this.toneMapping = NoToneMapping;\n\n\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t_this.toneMapping = currentToneMapping;\n\n\t\ttextures.updateMultisampleRenderTarget( _transmissionRenderTarget );\n\t\ttextures.updateRenderTargetMipmap( _transmissionRenderTarget );\n\n\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t}\n\n\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\tconst object = renderItem.object;\n\t\t\tconst geometry = renderItem.geometry;\n\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\tconst group = renderItem.group;\n\n\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\tmaterial.onBeforeRender( _this, scene, camera, geometry, object, group );\n\n\t\tif ( material.transparent === true && material.side === DoubleSide ) {\n\n\t\t\tmaterial.side = BackSide;\n\t\t\tmaterial.needsUpdate = true;\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\tmaterial.side = FrontSide;\n\t\t\tmaterial.needsUpdate = true;\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\tmaterial.side = DoubleSide;\n\n\t\t} else {\n\n\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t}\n\n\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t}\n\n\tfunction getProgram( material, scene, object ) {\n\n\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst lights = currentRenderState.state.lights;\n\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\tconst lightsStateVersion = lights.state.version;\n\n\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\tlet programs = materialProperties.programs;\n\n\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\tmaterialProperties.fog = scene.fog;\n\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\n\t\tif ( programs === undefined ) {\n\n\t\t\t// new material\n\n\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tprograms = new Map();\n\t\t\tmaterialProperties.programs = programs;\n\n\t\t}\n\n\t\tlet program = programs.get( programCacheKey );\n\n\t\tif ( program !== undefined ) {\n\n\t\t\t// early out if program and light state is identical\n\n\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\treturn program;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\tmaterial.onBuild( object, parameters, _this );\n\n\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t}\n\n\t\tconst uniforms = materialProperties.uniforms;\n\n\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t}\n\n\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t// store the light setup it was created for\n\n\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\tuniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix;\n\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t}\n\n\t\tconst progUniforms = program.getUniforms();\n\t\tconst uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, uniforms );\n\n\t\tmaterialProperties.currentProgram = program;\n\t\tmaterialProperties.uniformsList = uniformsList;\n\n\t\treturn program;\n\n\t}\n\n\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tmaterialProperties.outputEncoding = parameters.outputEncoding;\n\t\tmaterialProperties.instancing = parameters.instancing;\n\t\tmaterialProperties.skinning = parameters.skinning;\n\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\tmaterialProperties.morphColors = parameters.morphColors;\n\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t}\n\n\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\ttextures.resetTextureUnits();\n\n\t\tconst fog = scene.fog;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\tconst encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.encoding : LinearEncoding );\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\tconst vertexTangents = !! material.normalMap && !! geometry.attributes.tangent;\n\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\tconst morphColors = !! geometry.morphAttributes.color;\n\t\tconst toneMapping = material.toneMapped ? _this.toneMapping : NoToneMapping;\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tconst materialProperties = properties.get( material );\n\t\tconst lights = currentRenderState.state.lights;\n\n\t\tif ( _clippingEnabled === true ) {\n\n\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\tconst useCache =\n\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t// (#8465, #8379)\n\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tlet needsProgramChange = false;\n\n\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.outputEncoding !== encoding ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( material.fog && materialProperties.fog !== fog ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.morphColors !== morphColors ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t} else if ( capabilities.isWebGL2 === true && materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\tneedsProgramChange = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tneedsProgramChange = true;\n\t\t\tmaterialProperties.__version = material.version;\n\n\t\t}\n\n\t\t//\n\n\t\tlet program = materialProperties.currentProgram;\n\n\t\tif ( needsProgramChange === true ) {\n\n\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t}\n\n\t\tlet refreshProgram = false;\n\t\tlet refreshMaterial = false;\n\t\tlet refreshLights = false;\n\n\t\tconst p_uniforms = program.getUniforms(),\n\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\trefreshProgram = true;\n\t\t\trefreshMaterial = true;\n\t\t\trefreshLights = true;\n\n\t\t}\n\n\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t_currentMaterialId = material.id;\n\n\t\t\trefreshMaterial = true;\n\n\t\t}\n\n\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\n\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t}\n\n\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t}\n\n\t\t\t// load material specific uniforms\n\t\t\t// (shader material also gets them for the sake of genericity)\n\n\t\t\tif ( material.isShaderMaterial ||\n\t\t\t\tmaterial.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.envMap ) {\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl,\n\t\t\t\t\t\t_vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\tmaterial.isShaderMaterial ||\n\t\t\t\tmaterial.isShadowMaterial ||\n\t\t\t\tobject.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( skeleton ) {\n\n\t\t\t\tif ( capabilities.floatVertexTextures ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTextureSize', skeleton.boneTextureSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tp_uniforms.setOptional( _gl, skeleton, 'boneMatrices' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tif ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined && capabilities.isWebGL2 === true ) ) {\n\n\t\t\tmorphtargets.update( object, geometry, material, program );\n\n\t\t}\n\n\n\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t}\n\n\t\tif ( refreshMaterial ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t// values\n\t\t\t\t//\n\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t// the GL state when required\n\n\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t}\n\n\t\t\t// refresh uniforms common to several materials\n\n\t\t\tif ( fog && material.fog ) {\n\n\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t}\n\n\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, _transmissionRenderTarget );\n\n\t\t\tWebGLUniforms.upload( _gl, materialProperties.uniformsList, m_uniforms, textures );\n\n\t\t}\n\n\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\tWebGLUniforms.upload( _gl, materialProperties.uniformsList, m_uniforms, textures );\n\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t}\n\n\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t}\n\n\t\t// common matrices\n\n\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\treturn program;\n\n\t}\n\n\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\tuniforms.directionalLights.needsUpdate = value;\n\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\tuniforms.pointLights.needsUpdate = value;\n\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\tuniforms.spotLights.needsUpdate = value;\n\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t}\n\n\tfunction materialNeedsLights( material ) {\n\n\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t}\n\n\tthis.getActiveCubeFace = function () {\n\n\t\treturn _currentActiveCubeFace;\n\n\t};\n\n\tthis.getActiveMipmapLevel = function () {\n\n\t\treturn _currentActiveMipmapLevel;\n\n\t};\n\n\tthis.getRenderTarget = function () {\n\n\t\treturn _currentRenderTarget;\n\n\t};\n\n\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\tif ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTargetProperties.__useRenderToTexture = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t};\n\n\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t_currentRenderTarget = renderTarget;\n\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\n\t\tlet useDefaultFramebuffer = true;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\tstate.bindFramebuffer( 36160, null );\n\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet framebuffer = null;\n\t\tlet isCube = false;\n\t\tlet isRenderTarget3D = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tconst texture = renderTarget.texture;\n\n\t\t\tif ( texture.isData3DTexture || texture.isDataArrayTexture ) {\n\n\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t}\n\n\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\t\t\t\tisCube = true;\n\n\t\t\t} else if ( ( capabilities.isWebGL2 && renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t} else {\n\n\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t}\n\n\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t} else {\n\n\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t}\n\n\t\tconst framebufferBound = state.bindFramebuffer( 36160, framebuffer );\n\n\t\tif ( framebufferBound && capabilities.drawBuffers && useDefaultFramebuffer ) {\n\n\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t}\n\n\t\tstate.viewport( _currentViewport );\n\t\tstate.scissor( _currentScissor );\n\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\tif ( isCube ) {\n\n\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t_gl.framebufferTexture2D( 36160, 36064, 34069 + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\tconst layer = activeCubeFace || 0;\n\t\t\t_gl.framebufferTextureLayer( 36160, 36064, textureProperties.__webglTexture, activeMipmapLevel || 0, layer );\n\n\t\t}\n\n\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t};\n\n\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t}\n\n\t\tif ( framebuffer ) {\n\n\t\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\t\ttry {\n\n\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== _gl.getParameter( 35739 ) ) {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || ( capabilities.isWebGL2 && extensions.has( 'EXT_color_buffer_float' ) ) );\n\n\t\t\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== _gl.getParameter( 35738 ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\t\t\t! ( textureType === FloatType && ( capabilities.isWebGL2 || extensions.has( 'OES_texture_float' ) || extensions.has( 'WEBGL_color_buffer_float' ) ) ) && // Chrome Mac >= 52 and Firefox\n\t\t\t\t\t! halfFloatSupportedByExt ) {\n\n\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t}\n\n\t\t\t} finally {\n\n\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\tstate.bindFramebuffer( 36160, framebuffer );\n\n\t\t\t}\n\n\t\t}\n\n\t};\n\n\tthis.copyFramebufferToTexture = function ( position, texture, level = 0 ) {\n\n\t\tif ( texture.isFramebufferTexture !== true ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst levelScale = Math.pow( 2, - level );\n\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t_gl.copyTexSubImage2D( 3553, level, 0, 0, position.x, position.y, width, height );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.copyTextureToTexture = function ( position, srcTexture, dstTexture, level = 0 ) {\n\n\t\tconst width = srcTexture.image.width;\n\t\tconst height = srcTexture.image.height;\n\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\tconst glType = utils.convert( dstTexture.type );\n\n\t\ttextures.setTexture2D( dstTexture, 0 );\n\n\t\t// As another texture upload may have changed pixelStorei\n\t\t// parameters, make sure they are correct for the dstTexture\n\t\t_gl.pixelStorei( 37440, dstTexture.flipY );\n\t\t_gl.pixelStorei( 37441, dstTexture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, dstTexture.unpackAlignment );\n\n\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t_gl.texSubImage2D( 3553, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data );\n\n\t\t} else {\n\n\t\t\tif ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t_gl.compressedTexSubImage2D( 3553, level, position.x, position.y, srcTexture.mipmaps[ 0 ].width, srcTexture.mipmaps[ 0 ].height, glFormat, srcTexture.mipmaps[ 0 ].data );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.texSubImage2D( 3553, level, position.x, position.y, glFormat, glType, srcTexture.image );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Generate mipmaps only when copying level 0\n\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( 3553 );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.copyTextureToTexture3D = function ( sourceBox, position, srcTexture, dstTexture, level = 0 ) {\n\n\t\tif ( _this.isWebGL1Renderer ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst width = sourceBox.max.x - sourceBox.min.x + 1;\n\t\tconst height = sourceBox.max.y - sourceBox.min.y + 1;\n\t\tconst depth = sourceBox.max.z - sourceBox.min.z + 1;\n\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\tconst glType = utils.convert( dstTexture.type );\n\t\tlet glTarget;\n\n\t\tif ( dstTexture.isData3DTexture ) {\n\n\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\tglTarget = 32879;\n\n\t\t} else if ( dstTexture.isDataArrayTexture ) {\n\n\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\tglTarget = 35866;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\t_gl.pixelStorei( 37440, dstTexture.flipY );\n\t\t_gl.pixelStorei( 37441, dstTexture.premultiplyAlpha );\n\t\t_gl.pixelStorei( 3317, dstTexture.unpackAlignment );\n\n\t\tconst unpackRowLen = _gl.getParameter( 3314 );\n\t\tconst unpackImageHeight = _gl.getParameter( 32878 );\n\t\tconst unpackSkipPixels = _gl.getParameter( 3316 );\n\t\tconst unpackSkipRows = _gl.getParameter( 3315 );\n\t\tconst unpackSkipImages = _gl.getParameter( 32877 );\n\n\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ 0 ] : srcTexture.image;\n\n\t\t_gl.pixelStorei( 3314, image.width );\n\t\t_gl.pixelStorei( 32878, image.height );\n\t\t_gl.pixelStorei( 3316, sourceBox.min.x );\n\t\t_gl.pixelStorei( 3315, sourceBox.min.y );\n\t\t_gl.pixelStorei( 32877, sourceBox.min.z );\n\n\t\tif ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {\n\n\t\t\t_gl.texSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image.data );\n\n\t\t} else {\n\n\t\t\tif ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.' );\n\t\t\t\t_gl.compressedTexSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, image.data );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.texSubImage3D( glTarget, level, position.x, position.y, position.z, width, height, depth, glFormat, glType, image );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.pixelStorei( 3314, unpackRowLen );\n\t\t_gl.pixelStorei( 32878, unpackImageHeight );\n\t\t_gl.pixelStorei( 3316, unpackSkipPixels );\n\t\t_gl.pixelStorei( 3315, unpackSkipRows );\n\t\t_gl.pixelStorei( 32877, unpackSkipImages );\n\n\t\t// Generate mipmaps only when copying level 0\n\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( glTarget );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.initTexture = function ( texture ) {\n\n\t\ttextures.setTexture2D( texture, 0 );\n\n\t\tstate.unbindTexture();\n\n\t};\n\n\tthis.resetState = function () {\n\n\t\t_currentActiveCubeFace = 0;\n\t\t_currentActiveMipmapLevel = 0;\n\t\t_currentRenderTarget = null;\n\n\t\tstate.reset();\n\t\tbindingStates.reset();\n\n\t};\n\n\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t}\n\n}\n\nWebGLRenderer.prototype.isWebGLRenderer = true;\n\nclass WebGL1Renderer extends WebGLRenderer {}\n\nWebGL1Renderer.prototype.isWebGL1Renderer = true;\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.overrideMaterial = null;\n\n\t\tthis.autoUpdate = true; // checked by the renderer\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\treturn data;\n\n\t}\n\n}\n\nScene.prototype.isScene = true;\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.updateRange = { offset: 0, count: - 1 };\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.prototype.slice.call( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nInterleavedBuffer.prototype.isInterleavedBuffer = true;\n\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized === true;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset ];\n\n\t}\n\n\tgetY( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t}\n\n\tgetZ( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t}\n\n\tgetW( index ) {\n\n\t\treturn this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// deinterleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interlaved attribtue\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nInterleavedBufferAttribute.prototype.isInterleavedBufferAttribute = true;\n\nclass SpriteMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpriteMaterial.prototype.isSpriteMaterial = true;\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = ( material !== undefined ) ? material : new SpriteMaterial();\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getUV( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSprite.prototype.isSprite = true;\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = 'attached';\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\treturn this;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.fromBufferAttribute( skinWeight, i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === 'attached' ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === 'detached' ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tboneTransform( index, target ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( target ).applyMatrix4( this.bindMatrix );\n\n\t\ttarget.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\ttarget.addScaledVector( _vector$5.copy( _basePosition ).applyMatrix4( _matrix ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn target.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nSkinnedMesh.prototype.isSkinnedMesh = true;\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nBone.prototype.isBone = true;\n\nclass DataTexture extends Texture$1 {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, encoding ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nDataTexture.prototype.isDataTexture = true;\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\t\tthis.boneTextureSize = 0;\n\n\t\tthis.frame = - 1;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = ceilPowerOfTwo( size );\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\t\tthis.boneTextureSize = size;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tif ( typeof normalized === 'number' ) {\n\n\t\t\tmeshPerAttribute = normalized;\n\n\t\t\tnormalized = false;\n\n\t\t\tconsole.error( 'THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.' );\n\n\t\t}\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nInstancedBufferAttribute.prototype.isInstancedBufferAttribute = true;\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _mesh = /*@__PURE__*/ new Mesh();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\n\t\tthis.count = count;\n\n\t\tthis.frustumCulled = false;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh.geometry = this.geometry;\n\t\t_mesh.material = this.material;\n\n\t\tif ( _mesh.material === undefined ) return;\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nInstancedMesh.prototype.isInstancedMesh = true;\n\nclass LineBasicMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineBasicMaterial.prototype.isLineBasicMaterial = true;\n\nconst _start$1 = /*@__PURE__*/ new Vector3();\nconst _end$1 = /*@__PURE__*/ new Vector3();\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\t// we assume non-indexed geometry\n\n\t\t\tif ( geometry.index === null ) {\n\n\t\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\t_start$1.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t\t_end$1.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\t\tlineDistances[ i ] += _start$1.distanceTo( _end$1 );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst vStart = new Vector3();\n\t\tconst vEnd = new Vector3();\n\t\tconst interSegment = new Vector3();\n\t\tconst interRay = new Vector3();\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst attributes = geometry.attributes;\n\t\t\tconst positionAttribute = attributes.position;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\t\tvStart.fromBufferAttribute( positionAttribute, a );\n\t\t\t\t\tvEnd.fromBufferAttribute( positionAttribute, b );\n\n\t\t\t\t\tconst distSq = _ray$1.distanceSqToSegment( vStart, vEnd, interRay, interSegment );\n\n\t\t\t\t\tif ( distSq > localThresholdSq ) continue;\n\n\t\t\t\t\tinterRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation\n\n\t\t\t\t\tconst distance = raycaster.ray.origin.distanceTo( interRay );\n\n\t\t\t\t\tif ( distance < raycaster.near || distance > raycaster.far ) continue;\n\n\t\t\t\t\tintersects.push( {\n\n\t\t\t\t\t\tdistance: distance,\n\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\n\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4( this.matrixWorld ),\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tface: null,\n\t\t\t\t\t\tfaceIndex: null,\n\t\t\t\t\t\tobject: this\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\t\tvStart.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t\tvEnd.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\t\tconst distSq = _ray$1.distanceSqToSegment( vStart, vEnd, interRay, interSegment );\n\n\t\t\t\t\tif ( distSq > localThresholdSq ) continue;\n\n\t\t\t\t\tinterRay.applyMatrix4( this.matrixWorld ); //Move back to world space for distance calculation\n\n\t\t\t\t\tconst distance = raycaster.ray.origin.distanceTo( interRay );\n\n\t\t\t\t\tif ( distance < raycaster.near || distance > raycaster.far ) continue;\n\n\t\t\t\t\tintersects.push( {\n\n\t\t\t\t\t\tdistance: distance,\n\t\t\t\t\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t\t\t\t\t// point: raycaster.ray.at( distance ),\n\t\t\t\t\t\tpoint: interSegment.clone().applyMatrix4( this.matrixWorld ),\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tface: null,\n\t\t\t\t\t\tfaceIndex: null,\n\t\t\t\t\t\tobject: this\n\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nLine.prototype.isLine = true;\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\t// we assume non-indexed geometry\n\n\t\t\tif ( geometry.index === null ) {\n\n\t\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\t\tconst lineDistances = [];\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineSegments.prototype.isLineSegments = true;\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nLineLoop.prototype.isLineLoop = true;\n\nclass PointsMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nPointsMaterial.prototype.isPointsMaterial = true;\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst attributes = geometry.attributes;\n\t\t\tconst positionAttribute = attributes.position;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nPoints.prototype.isPoints = true;\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass VideoTexture extends Texture$1 {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nVideoTexture.prototype.isVideoTexture = true;\n\nclass FramebufferTexture extends Texture$1 {\n\n\tconstructor( width, height, format ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.format = format;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nFramebufferTexture.prototype.isFramebufferTexture = true;\n\nclass CompressedTexture extends Texture$1 {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nCompressedTexture.prototype.isCompressedTexture = true;\n\nclass CanvasTexture extends Texture$1 {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nCanvasTexture.prototype.isCanvasTexture = true;\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp$1( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp$1( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst point = optionalTarget || new Vector2();\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nEllipseCurve.prototype.isEllipseCurve = true;\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\nArcCurve.prototype.isArcCurve = true;\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = new Vector3();\nconst px = new CubicPoly(), py = new CubicPoly(), pz = new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\nCatmullRomCurve3.prototype.isCatmullRomCurve3 = true;\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nCubicBezierCurve.prototype.isCubicBezierCurve = true;\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nCubicBezierCurve3.prototype.isCubicBezierCurve3 = true;\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst tangent = optionalTarget || new Vector2();\n\n\t\ttangent.copy( this.v2 ).sub( this.v1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineCurve.prototype.isLineCurve = true;\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineCurve3';\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nQuadraticBezierCurve.prototype.isQuadraticBezierCurve = true;\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nQuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true;\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nSplineCurve.prototype.isSplineCurve = true;\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tthis.curves.push( new LineCurve( endPoint, startPoint ) );\n\n\t\t}\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nnew Vector3();\nnew Vector3();\nnew Vector3();\nnew Triangle();\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.2)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 1 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim );\n\t\t\ttriangles.push( ear.i / dim );\n\t\t\ttriangles.push( next.i / dim );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tlet p = ear.next.next;\n\n\twhile ( p !== ear.prev ) {\n\n\t\tif ( pointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst minTX = a.x < b.x ? ( a.x < c.x ? a.x : c.x ) : ( b.x < c.x ? b.x : c.x ),\n\t\tminTY = a.y < b.y ? ( a.y < c.y ? a.y : c.y ) : ( b.y < c.y ? b.y : c.y ),\n\t\tmaxTX = a.x > b.x ? ( a.x > c.x ? a.x : c.x ) : ( b.x > c.x ? b.x : c.x ),\n\t\tmaxTY = a.y > b.y ? ( a.y > c.y ? a.y : c.y ) : ( b.y > c.y ? b.y : c.y );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( minTX, minTY, minX, minY, invSize ),\n\t\tmaxZ = zOrder( maxTX, maxTY, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p !== ear.prev && p !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n !== ear.prev && n !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y ) &&\n\t\t\tarea( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p !== ear.prev && p !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n !== ear.prev && n !== ear.next &&\n\t\t\tpointInTriangle( a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y ) &&\n\t\t\tarea( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim );\n\t\t\ttriangles.push( p.i / dim );\n\t\t\ttriangles.push( b.i / dim );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\teliminateHole( queue[ i ], outerNode );\n\t\touterNode = filterPoints( outerNode, outerNode.next );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\touterNode = findHoleBridge( hole, outerNode );\n\tif ( outerNode ) {\n\n\t\tconst b = splitPolygon( outerNode, hole );\n\n\t\t// filter collinear points around the cuts\n\t\tfilterPoints( outerNode, outerNode.next );\n\t\tfilterPoints( b, b.next );\n\n\t}\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode;\n\tconst hx = hole.x;\n\tconst hy = hole.y;\n\tlet qx = - Infinity, m;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tif ( x === hx ) {\n\n\t\t\t\t\tif ( hy === p.y ) return p;\n\t\t\t\t\tif ( hy === p.next.y ) return p.next;\n\n\t\t\t\t}\n\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\tif ( hx === qx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === null ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = 32767 * ( x - minX ) * invSize;\n\ty = 32767 * ( y - minY ) * invSize;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) - ( ax - px ) * ( cy - py ) >= 0 &&\n\t\t\t( ax - px ) * ( by - py ) - ( bx - px ) * ( ay - py ) >= 0 &&\n\t\t\t( bx - px ) * ( cy - py ) - ( cx - px ) * ( by - py ) >= 0;\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // doesn't intersect other edges\n\t\t( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n\t\t( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n\t\tequals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node$2( a.i, a.x, a.y ),\n\t\tb2 = new Node$2( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node$2( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node$2( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = null;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tlet depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t// deprecated options\n\n\t\t\tif ( options.amount !== undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ExtrudeBufferGeometry: amount has been renamed to depth.' );\n\t\t\t\tdepth = options.amount;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn vec.clone().multiplyScalar( size ).add( pt );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// incides\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass ShadowMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\treturn this;\n\n\t}\n\n}\n\nShadowMaterial.prototype.isShadowMaterial = true;\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\nRawShaderMaterial.prototype.isRawShaderMaterial = true;\n\nclass MeshStandardMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshStandardMaterial.prototype.isMeshStandardMaterial = true;\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.type = 'MeshPhysicalMaterial';\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp$1( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = 0.0;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._sheen = 0.0;\n\t\tthis._clearcoat = 0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.ior = source.ior;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true;\n\nclass MeshPhongMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshPhongMaterial.prototype.isMeshPhongMaterial = true;\n\nclass MeshToonMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshToonMaterial.prototype.isMeshToonMaterial = true;\n\nclass MeshNormalMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshNormalMaterial.prototype.isMeshNormalMaterial = true;\n\nclass MeshLambertMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshLambertMaterial.prototype.isMeshLambertMaterial = true;\n\nclass MeshMatcapMaterial extends Material$1 {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nMeshMatcapMaterial.prototype.isMeshMatcapMaterial = true;\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineDashedMaterial.prototype.isLineDashedMaterial = true;\n\nconst materialLib = {\n\tShadowMaterial,\n\tSpriteMaterial,\n\tRawShaderMaterial,\n\tShaderMaterial,\n\tPointsMaterial,\n\tMeshPhysicalMaterial,\n\tMeshStandardMaterial,\n\tMeshPhongMaterial,\n\tMeshToonMaterial,\n\tMeshNormalMaterial,\n\tMeshLambertMaterial,\n\tMeshDepthMaterial,\n\tMeshDistanceMaterial,\n\tMeshBasicMaterial,\n\tMeshMatcapMaterial,\n\tLineDashedMaterial,\n\tLineBasicMaterial,\n\tMaterial: Material$1\n};\n\nMaterial$1.fromType = function ( type ) {\n\n\treturn new materialLib[ type ]();\n\n};\n\nconst AnimationUtils = {\n\n\t// same as Array.prototype.slice, but also works on typed arrays\n\tarraySlice: function ( array, from, to ) {\n\n\t\tif ( AnimationUtils.isTypedArray( array ) ) {\n\n\t\t\t// in ios9 array.subarray(from, undefined) will return empty array\n\t\t\t// but array.subarray(from) or array.subarray(from, len) is correct\n\t\t\treturn new array.constructor( array.subarray( from, to !== undefined ? to : array.length ) );\n\n\t\t}\n\n\t\treturn array.slice( from, to );\n\n\t},\n\n\t// converts an array to a specific type\n\tconvertArray: function ( array, type, forceClone ) {\n\n\t\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t\t! forceClone && array.constructor === type ) return array;\n\n\t\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\t\treturn new type( array ); // create typed array\n\n\t\t}\n\n\t\treturn Array.prototype.slice.call( array ); // create Array\n\n\t},\n\n\tisTypedArray: function ( object ) {\n\n\t\treturn ArrayBuffer.isView( object ) &&\n\t\t\t! ( object instanceof DataView );\n\n\t},\n\n\t// returns an array by which times and values can be sorted\n\tgetKeyframeOrder: function ( times ) {\n\n\t\tfunction compareTime( i, j ) {\n\n\t\t\treturn times[ i ] - times[ j ];\n\n\t\t}\n\n\t\tconst n = times.length;\n\t\tconst result = new Array( n );\n\t\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\t\tresult.sort( compareTime );\n\n\t\treturn result;\n\n\t},\n\n\t// uses the array previously returned by 'getKeyframeOrder' to sort data\n\tsortedArray: function ( values, stride, order ) {\n\n\t\tconst nValues = values.length;\n\t\tconst result = new values.constructor( nValues );\n\n\t\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\t\tconst srcOffset = order[ i ] * stride;\n\n\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn result;\n\n\t},\n\n\t// function for parsing AOS keyframe formats\n\tflattenJSON: function ( jsonKeys, times, values, valuePropertyName ) {\n\n\t\tlet i = 1, key = jsonKeys[ 0 ];\n\n\t\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t}\n\n\t\tif ( key === undefined ) return; // no data\n\n\t\tlet value = key[ valuePropertyName ];\n\t\tif ( value === undefined ) return; // no data\n\n\t\tif ( Array.isArray( value ) ) {\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t} else if ( value.toArray !== undefined ) {\n\n\t\t\t// ...assume THREE.Math-ish\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t} else {\n\n\t\t\t// otherwise push as-is\n\n\t\t\tdo {\n\n\t\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\ttimes.push( key.time );\n\t\t\t\t\tvalues.push( value );\n\n\t\t\t\t}\n\n\t\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t\t} while ( key !== undefined );\n\n\t\t}\n\n\t},\n\n\tsubclip: function ( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\t\tconst clip = sourceClip.clone();\n\n\t\tclip.name = name;\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tconst track = clip.tracks[ i ];\n\t\t\tconst valueSize = track.getValueSize();\n\n\t\t\tconst times = [];\n\t\t\tconst values = [];\n\n\t\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( times.length === 0 ) continue;\n\n\t\t\ttrack.times = AnimationUtils.convertArray( times, track.times.constructor );\n\t\t\ttrack.values = AnimationUtils.convertArray( values, track.values.constructor );\n\n\t\t\ttracks.push( track );\n\n\t\t}\n\n\t\tclip.tracks = tracks;\n\n\t\t// find minimum .times value across all tracks in the trimmed clip\n\n\t\tlet minStartTime = Infinity;\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// shift all tracks such that clip begins at t=0\n\n\t\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t\t}\n\n\t\tclip.resetDuration();\n\n\t\treturn clip;\n\n\t},\n\n\tmakeClipAdditive: function ( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\t\tif ( fps <= 0 ) fps = 30;\n\n\t\tconst numTracks = referenceClip.tracks.length;\n\t\tconst referenceTime = referenceFrame / fps;\n\n\t\t// Make each track's values relative to the values at the reference frame\n\t\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t\t// Skip this track if it's non-numeric\n\t\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t\t} );\n\n\t\t\tif ( targetTrack === undefined ) continue;\n\n\t\t\tlet referenceOffset = 0;\n\t\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t\t}\n\n\t\t\tlet targetOffset = 0;\n\t\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t\t}\n\n\t\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\t\tlet referenceValue;\n\n\t\t\t// Find the value to subtract out of the track\n\t\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\t\tconst startIndex = referenceOffset;\n\t\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );\n\n\t\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );\n\n\t\t\t} else {\n\n\t\t\t\t// Interpolate to the reference value\n\t\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\t\tconst startIndex = referenceOffset;\n\t\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\t\treferenceValue = AnimationUtils.arraySlice( interpolant.resultBuffer, startIndex, endIndex );\n\n\t\t\t}\n\n\t\t\t// Conjugate the quaternion\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t\t}\n\n\t\t\t// Subtract the reference value from all of the track values\n\n\t\t\tconst numTimes = targetTrack.times.length;\n\t\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\t\tvalueStart,\n\t\t\t\t\t\treferenceValue,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\t\tvalueStart\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\t\treturn targetClip;\n\n\t}\n\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.afterEnd_( i1 - 1, t, t0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.beforeStart_( 0, t, t1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.beforeStart_( 0, t, t1 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.afterEnd_( i1 - 1, t0, t );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n// ALIAS DEFINITIONS\n\nInterpolant.prototype.beforeStart_ = Interpolant.prototype.copySampleValue_;\nInterpolant.prototype.afterEnd_ = Interpolant.prototype.copySampleValue_;\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = AnimationUtils.convertArray( times, this.TimeBufferType );\n\t\tthis.values = AnimationUtils.convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': AnimationUtils.convertArray( track.times, Array ),\n\t\t\t\t'values': AnimationUtils.convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = AnimationUtils.arraySlice( times, from, to );\n\t\t\tthis.values = AnimationUtils.arraySlice( this.values, from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( AnimationUtils.isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = AnimationUtils.arraySlice( this.times ),\n\t\t\tvalues = AnimationUtils.arraySlice( this.values ),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = AnimationUtils.arraySlice( times, 0, writeIndex );\n\t\t\tthis.values = AnimationUtils.arraySlice( values, 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = AnimationUtils.arraySlice( this.times, 0 );\n\t\tconst values = AnimationUtils.arraySlice( this.values, 0 );\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\nQuaternionKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name, duration = - 1, tracks, blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = AnimationUtils.getKeyframeOrder( times );\n\t\t\ttimes = AnimationUtils.sortedArray( times, 1, order );\n\t\t\tvalues = AnimationUtils.sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tAnimationUtils.flattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * fps;\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tAnimationUtils.flattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nconst loading = {};\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\t\t\t\t\tconst contentLength = response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow Error( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}` );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.slice( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tconst texData = scope.parse( buffer );\n\n\t\t\tif ( ! texData ) return;\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.encoding !== undefined ) {\n\n\t\t\t\ttexture.encoding = texData.encoding;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture$1();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\n\t\treturn data;\n\n\t}\n\n}\n\nLight.prototype.isLight = true;\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tLight.prototype.copy.call( this, source );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nHemisphereLight.prototype.isHemisphereLight = true;\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( shadowCamera.projectionMatrix );\n\t\tshadowMatrix.multiply( shadowCamera.matrixWorldInverse );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpotLightShadow.prototype.isSpotLightShadow = true;\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 1 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay; // for physically correct lights, should be 2.\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nSpotLight.prototype.isSpotLight = true;\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nPointLightShadow.prototype.isPointLightShadow = true;\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 1 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay; // for physically correct lights, should be 2.\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nPointLight.prototype.isPointLight = true;\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t}\n\n}\n\nDirectionalLightShadow.prototype.isDirectionalLightShadow = true;\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DefaultUp );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nDirectionalLight.prototype.isDirectionalLight = true;\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nAmbientLight.prototype.isAmbientLight = true;\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\nRectAreaLight.prototype.isRectAreaLight = true;\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nSphericalHarmonics3.prototype.isSphericalHarmonics3 = true;\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nLightProbe.prototype.isLightProbe = true;\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) {\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.slice( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON( this );\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nInstancedBufferGeometry.prototype.isInstancedBufferGeometry = true;\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tfetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nImageBitmapLoader.prototype.isImageBitmapLoader = true;\n\nlet _context;\n\nconst AudioContext = {\n\n\tgetContext: function () {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t},\n\n\tsetContext: function ( value ) {\n\n\t\t_context = value;\n\n\t}\n\n};\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n}\n\nclass HemisphereLightProbe extends LightProbe {\n\n\tconstructor( skyColor, groundColor, intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tconst color1 = new Color().set( skyColor );\n\t\tconst color2 = new Color().set( groundColor );\n\n\t\tconst sky = new Vector3( color1.r, color1.g, color1.b );\n\t\tconst ground = new Vector3( color2.r, color2.g, color2.b );\n\n\t\t// without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI );\n\t\tconst c0 = Math.sqrt( Math.PI );\n\t\tconst c1 = c0 * Math.sqrt( 0.75 );\n\n\t\tthis.sh.coefficients[ 0 ].copy( sky ).add( ground ).multiplyScalar( c0 );\n\t\tthis.sh.coefficients[ 1 ].copy( sky ).sub( ground ).multiplyScalar( c1 );\n\n\t}\n\n}\n\nHemisphereLightProbe.prototype.isHemisphereLightProbe = true;\n\nclass AmbientLightProbe extends LightProbe {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tconst color1 = new Color().set( color );\n\n\t\t// without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI );\n\t\tthis.sh.coefficients[ 0 ].set( color1.r, color1.g, color1.b ).multiplyScalar( 2 * Math.sqrt( Math.PI ) );\n\n\t}\n\n}\n\nAmbientLightProbe.prototype.isAmbientLightProbe = true;\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tthis.source.stop();\n\t\tthis.source.onended = null;\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.source.detune === undefined ) return; // only set detune when available\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName ) || rootNode;\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( matches === null ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName ) || this.rootNode;\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\\'t found.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.needsUpdate !== undefined ) { // material\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.geometry.isBufferGeometry ) {\n\n\t\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t\t}\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\treturn; // yet to come / don't decide when delta = 0\n\n\t\t\t}\n\n\t\t\t// start\n\n\t\t\tthis._startTime = null; // unschedule\n\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, this._controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nAnimationMixer.prototype._controlInterpolantsResultBuffer = new Float32Array( 1 );\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nInstancedInterleavedBuffer.prototype.isInstancedInterleavedBuffer = true;\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersectObject( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersectObject( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersectObject( object, raycaster, intersects, recursive ) {\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tobject.raycast( raycaster, intersects );\n\n\t}\n\n\tif ( recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersectObject( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up.\n * The azimuthal angle (theta) is measured from the positive z-axis.\n */\n\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be between EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp$1( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'SkeletonHelper';\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object.isBone === true ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nclass DataUtils {\n\n\t// float32 to float16\n\n\tstatic toHalfFloat( val ) {\n\n\t\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\t\tval = clamp$1( val, - 65504, 65504 );\n\n\t\t_floatView[ 0 ] = val;\n\t\tconst f = _uint32View[ 0 ];\n\t\tconst e = ( f >> 23 ) & 0x1ff;\n\t\treturn _baseTable[ e ] + ( ( f & 0x007fffff ) >> _shiftTable[ e ] );\n\n\t}\n\n\t// float16 to float32\n\n\tstatic fromHalfFloat( val ) {\n\n\t\tconst m = val >> 10;\n\t\t_uint32View[ 0 ] = _mantissaTable[ _offsetTable[ m ] + ( val & 0x3ff ) ] + _exponentTable[ m ];\n\t\treturn _floatView[ 0 ];\n\n\t}\n\n}\n\n// float32 to float16 helpers\n\nconst _buffer = new ArrayBuffer( 4 );\nconst _floatView = new Float32Array( _buffer );\nconst _uint32View = new Uint32Array( _buffer );\n\nconst _baseTable = new Uint32Array( 512 );\nconst _shiftTable = new Uint32Array( 512 );\n\nfor ( let i = 0; i < 256; ++ i ) {\n\n\tconst e = i - 127;\n\n\t// very small number (0, -0)\n\n\tif ( e < - 27 ) {\n\n\t\t_baseTable[ i ] = 0x0000;\n\t\t_baseTable[ i | 0x100 ] = 0x8000;\n\t\t_shiftTable[ i ] = 24;\n\t\t_shiftTable[ i | 0x100 ] = 24;\n\n\t\t// small number (denorm)\n\n\t} else if ( e < - 14 ) {\n\n\t\t_baseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t_baseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t_shiftTable[ i ] = - e - 1;\n\t\t_shiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t// normal number\n\n\t} else if ( e <= 15 ) {\n\n\t\t_baseTable[ i ] = ( e + 15 ) << 10;\n\t\t_baseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t_shiftTable[ i ] = 13;\n\t\t_shiftTable[ i | 0x100 ] = 13;\n\n\t\t// large number (Infinity, -Infinity)\n\n\t} else if ( e < 128 ) {\n\n\t\t_baseTable[ i ] = 0x7c00;\n\t\t_baseTable[ i | 0x100 ] = 0xfc00;\n\t\t_shiftTable[ i ] = 24;\n\t\t_shiftTable[ i | 0x100 ] = 24;\n\n\t\t// stay (NaN, Infinity, -Infinity)\n\n\t} else {\n\n\t\t_baseTable[ i ] = 0x7c00;\n\t\t_baseTable[ i | 0x100 ] = 0xfc00;\n\t\t_shiftTable[ i ] = 13;\n\t\t_shiftTable[ i | 0x100 ] = 13;\n\n\t}\n\n}\n\n// float16 to float32 helpers\n\nconst _mantissaTable = new Uint32Array( 2048 );\nconst _exponentTable = new Uint32Array( 64 );\nconst _offsetTable = new Uint32Array( 64 );\n\nfor ( let i = 1; i < 1024; ++ i ) {\n\n\tlet m = i << 13; // zero pad mantissa bits\n\tlet e = 0; // zero exponent\n\n\t// normalized\n\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\tm <<= 1;\n\t\te -= 0x00800000; // decrement exponent\n\n\t}\n\n\tm &= ~ 0x00800000; // clear leading 1 bit\n\te += 0x38800000; // adjust bias\n\n\t_mantissaTable[ i ] = m | e;\n\n}\n\nfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t_mantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n}\n\nfor ( let i = 1; i < 31; ++ i ) {\n\n\t_exponentTable[ i ] = i << 23;\n\n}\n\n_exponentTable[ 31 ] = 0x47800000;\n_exponentTable[ 32 ] = 0x80000000;\nfor ( let i = 33; i < 63; ++ i ) {\n\n\t_exponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n}\n\n_exponentTable[ 63 ] = 0xc7800000;\n\nfor ( let i = 1; i < 64; ++ i ) {\n\n\tif ( i !== 32 ) {\n\n\t\t_offsetTable[ i ] = 1024;\n\n\t}\n\n}\n\n//\n\nCurve.create = function ( construct, getPoint ) {\n\n\tconsole.log( 'THREE.Curve.create() has been deprecated' );\n\n\tconstruct.prototype = Object.create( Curve.prototype );\n\tconstruct.prototype.constructor = construct;\n\tconstruct.prototype.getPoint = getPoint;\n\n\treturn construct;\n\n};\n\n//\n\nPath.prototype.fromPoints = function ( points ) {\n\n\tconsole.warn( 'THREE.Path: .fromPoints() has been renamed to .setFromPoints().' );\n\treturn this.setFromPoints( points );\n\n};\n\nGridHelper.prototype.setColors = function () {\n\n\tconsole.error( 'THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.' );\n\n};\n\nSkeletonHelper.prototype.update = function () {\n\n\tconsole.error( 'THREE.SkeletonHelper: update() no longer needs to be called.' );\n\n};\n\n//\n\nLoader.prototype.extractUrlBase = function ( url ) {\n\n\tconsole.warn( 'THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.' );\n\treturn LoaderUtils.extractUrlBase( url );\n\n};\n\nLoader.Handlers = {\n\n\tadd: function ( /* regex, loader */ ) {\n\n\t\tconsole.error( 'THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.' );\n\n\t},\n\n\tget: function ( /* file */ ) {\n\n\t\tconsole.error( 'THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.' );\n\n\t}\n\n};\n\n//\n\nBox3.prototype.center = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box3: .center() has been renamed to .getCenter().' );\n\treturn this.getCenter( optionalTarget );\n\n};\n\nBox3.prototype.empty = function () {\n\n\tconsole.warn( 'THREE.Box3: .empty() has been renamed to .isEmpty().' );\n\treturn this.isEmpty();\n\n};\n\nBox3.prototype.isIntersectionBox = function ( box ) {\n\n\tconsole.warn( 'THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().' );\n\treturn this.intersectsBox( box );\n\n};\n\nBox3.prototype.isIntersectionSphere = function ( sphere ) {\n\n\tconsole.warn( 'THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().' );\n\treturn this.intersectsSphere( sphere );\n\n};\n\nBox3.prototype.size = function ( optionalTarget ) {\n\n\tconsole.warn( 'THREE.Box3: .size() has been renamed to .getSize().' );\n\treturn this.getSize( optionalTarget );\n\n};\n\n//\n\nEuler.prototype.toVector3 = function () {\n\n\tconsole.error( 'THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead' );\n\n};\n\n\n//\n\nSphere.prototype.empty = function () {\n\n\tconsole.warn( 'THREE.Sphere: .empty() has been renamed to .isEmpty().' );\n\treturn this.isEmpty();\n\n};\n\n//\n\nFrustum.prototype.setFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().' );\n\treturn this.setFromProjectionMatrix( m );\n\n};\n\n//\n\nMatrix3.prototype.flattenToArrayOffset = function ( array, offset ) {\n\n\tconsole.warn( 'THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' );\n\treturn this.toArray( array, offset );\n\n};\n\nMatrix3.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.' );\n\treturn vector.applyMatrix3( this );\n\n};\n\nMatrix3.prototype.multiplyVector3Array = function ( /* a */ ) {\n\n\tconsole.error( 'THREE.Matrix3: .multiplyVector3Array() has been removed.' );\n\n};\n\nMatrix3.prototype.applyToBufferAttribute = function ( attribute ) {\n\n\tconsole.warn( 'THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.' );\n\treturn attribute.applyMatrix3( this );\n\n};\n\nMatrix3.prototype.applyToVector3Array = function ( /* array, offset, length */ ) {\n\n\tconsole.error( 'THREE.Matrix3: .applyToVector3Array() has been removed.' );\n\n};\n\nMatrix3.prototype.getInverse = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' );\n\treturn this.copy( matrix ).invert();\n\n};\n\n//\n\nMatrix4.prototype.extractPosition = function ( m ) {\n\n\tconsole.warn( 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().' );\n\treturn this.copyPosition( m );\n\n};\n\nMatrix4.prototype.flattenToArrayOffset = function ( array, offset ) {\n\n\tconsole.warn( 'THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.' );\n\treturn this.toArray( array, offset );\n\n};\n\nMatrix4.prototype.getPosition = function () {\n\n\tconsole.warn( 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.' );\n\treturn new Vector3().setFromMatrixColumn( this, 3 );\n\n};\n\nMatrix4.prototype.setRotationFromQuaternion = function ( q ) {\n\n\tconsole.warn( 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().' );\n\treturn this.makeRotationFromQuaternion( q );\n\n};\n\nMatrix4.prototype.multiplyToArray = function () {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyToArray() has been removed.' );\n\n};\n\nMatrix4.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.multiplyVector4 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.multiplyVector3Array = function ( /* a */ ) {\n\n\tconsole.error( 'THREE.Matrix4: .multiplyVector3Array() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateAxis = function ( v ) {\n\n\tconsole.warn( 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.' );\n\tv.transformDirection( this );\n\n};\n\nMatrix4.prototype.crossVector = function ( vector ) {\n\n\tconsole.warn( 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.' );\n\treturn vector.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.translate = function () {\n\n\tconsole.error( 'THREE.Matrix4: .translate() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateX = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateX() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateY = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateY() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateZ = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateZ() has been removed.' );\n\n};\n\nMatrix4.prototype.rotateByAxis = function () {\n\n\tconsole.error( 'THREE.Matrix4: .rotateByAxis() has been removed.' );\n\n};\n\nMatrix4.prototype.applyToBufferAttribute = function ( attribute ) {\n\n\tconsole.warn( 'THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.' );\n\treturn attribute.applyMatrix4( this );\n\n};\n\nMatrix4.prototype.applyToVector3Array = function ( /* array, offset, length */ ) {\n\n\tconsole.error( 'THREE.Matrix4: .applyToVector3Array() has been removed.' );\n\n};\n\nMatrix4.prototype.makeFrustum = function ( left, right, bottom, top, near, far ) {\n\n\tconsole.warn( 'THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.' );\n\treturn this.makePerspective( left, right, top, bottom, near, far );\n\n};\n\nMatrix4.prototype.getInverse = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.' );\n\treturn this.copy( matrix ).invert();\n\n};\n\n//\n\nPlane.prototype.isIntersectionLine = function ( line ) {\n\n\tconsole.warn( 'THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().' );\n\treturn this.intersectsLine( line );\n\n};\n\n//\n\nQuaternion.prototype.multiplyVector3 = function ( vector ) {\n\n\tconsole.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' );\n\treturn vector.applyQuaternion( this );\n\n};\n\nQuaternion.prototype.inverse = function ( ) {\n\n\tconsole.warn( 'THREE.Quaternion: .inverse() has been renamed to invert().' );\n\treturn this.invert();\n\n};\n\n//\n\nRay.prototype.isIntersectionBox = function ( box ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().' );\n\treturn this.intersectsBox( box );\n\n};\n\nRay.prototype.isIntersectionPlane = function ( plane ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().' );\n\treturn this.intersectsPlane( plane );\n\n};\n\nRay.prototype.isIntersectionSphere = function ( sphere ) {\n\n\tconsole.warn( 'THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().' );\n\treturn this.intersectsSphere( sphere );\n\n};\n\n//\n\nTriangle.prototype.area = function () {\n\n\tconsole.warn( 'THREE.Triangle: .area() has been renamed to .getArea().' );\n\treturn this.getArea();\n\n};\n\nTriangle.prototype.barycoordFromPoint = function ( point, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' );\n\treturn this.getBarycoord( point, target );\n\n};\n\nTriangle.prototype.midpoint = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .midpoint() has been renamed to .getMidpoint().' );\n\treturn this.getMidpoint( target );\n\n};\n\nTriangle.prototypenormal = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .normal() has been renamed to .getNormal().' );\n\treturn this.getNormal( target );\n\n};\n\nTriangle.prototype.plane = function ( target ) {\n\n\tconsole.warn( 'THREE.Triangle: .plane() has been renamed to .getPlane().' );\n\treturn this.getPlane( target );\n\n};\n\nTriangle.barycoordFromPoint = function ( point, a, b, c, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().' );\n\treturn Triangle.getBarycoord( point, a, b, c, target );\n\n};\n\nTriangle.normal = function ( a, b, c, target ) {\n\n\tconsole.warn( 'THREE.Triangle: .normal() has been renamed to .getNormal().' );\n\treturn Triangle.getNormal( a, b, c, target );\n\n};\n\n//\n\nShape.prototype.extractAllPoints = function ( divisions ) {\n\n\tconsole.warn( 'THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.' );\n\treturn this.extractPoints( divisions );\n\n};\n\nShape.prototype.extrude = function ( options ) {\n\n\tconsole.warn( 'THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.' );\n\treturn new ExtrudeGeometry( this, options );\n\n};\n\nShape.prototype.makeGeometry = function ( options ) {\n\n\tconsole.warn( 'THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.' );\n\treturn new ShapeGeometry( this, options );\n\n};\n\n//\n\nVector2.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector2.prototype.distanceToManhattan = function ( v ) {\n\n\tconsole.warn( 'THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' );\n\treturn this.manhattanDistanceTo( v );\n\n};\n\nVector2.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nVector3.prototype.setEulerFromRotationMatrix = function () {\n\n\tconsole.error( 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.' );\n\n};\n\nVector3.prototype.setEulerFromQuaternion = function () {\n\n\tconsole.error( 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.' );\n\n};\n\nVector3.prototype.getPositionFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().' );\n\treturn this.setFromMatrixPosition( m );\n\n};\n\nVector3.prototype.getScaleFromMatrix = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().' );\n\treturn this.setFromMatrixScale( m );\n\n};\n\nVector3.prototype.getColumnFromMatrix = function ( index, matrix ) {\n\n\tconsole.warn( 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().' );\n\treturn this.setFromMatrixColumn( matrix, index );\n\n};\n\nVector3.prototype.applyProjection = function ( m ) {\n\n\tconsole.warn( 'THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.' );\n\treturn this.applyMatrix4( m );\n\n};\n\nVector3.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector3.prototype.distanceToManhattan = function ( v ) {\n\n\tconsole.warn( 'THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().' );\n\treturn this.manhattanDistanceTo( v );\n\n};\n\nVector3.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nVector4.prototype.fromAttribute = function ( attribute, index, offset ) {\n\n\tconsole.warn( 'THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().' );\n\treturn this.fromBufferAttribute( attribute, index, offset );\n\n};\n\nVector4.prototype.lengthManhattan = function () {\n\n\tconsole.warn( 'THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().' );\n\treturn this.manhattanLength();\n\n};\n\n//\n\nObject3D.prototype.getChildByName = function ( name ) {\n\n\tconsole.warn( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' );\n\treturn this.getObjectByName( name );\n\n};\n\nObject3D.prototype.renderDepth = function () {\n\n\tconsole.warn( 'THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.' );\n\n};\n\nObject3D.prototype.translate = function ( distance, axis ) {\n\n\tconsole.warn( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' );\n\treturn this.translateOnAxis( axis, distance );\n\n};\n\nObject3D.prototype.getWorldRotation = function () {\n\n\tconsole.error( 'THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.' );\n\n};\n\nObject3D.prototype.applyMatrix = function ( matrix ) {\n\n\tconsole.warn( 'THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().' );\n\treturn this.applyMatrix4( matrix );\n\n};\n\nObject.defineProperties( Object3D.prototype, {\n\n\teulerOrder: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' );\n\t\t\treturn this.rotation.order;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .eulerOrder is now .rotation.order.' );\n\t\t\tthis.rotation.order = value;\n\n\t\t}\n\t},\n\tuseQuaternion: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' );\n\n\t\t}\n\t}\n\n} );\n\nMesh.prototype.setDrawMode = function () {\n\n\tconsole.error( 'THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' );\n\n};\n\nObject.defineProperties( Mesh.prototype, {\n\n\tdrawMode: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.' );\n\t\t\treturn TrianglesDrawMode;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.error( 'THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.' );\n\n\t\t}\n\t}\n\n} );\n\nSkinnedMesh.prototype.initBones = function () {\n\n\tconsole.error( 'THREE.SkinnedMesh: initBones() has been removed.' );\n\n};\n\n//\n\nPerspectiveCamera.prototype.setLens = function ( focalLength, filmGauge ) {\n\n\tconsole.warn( 'THREE.PerspectiveCamera.setLens is deprecated. ' +\n\t\t\t'Use .setFocalLength and .filmGauge for a photographic setup.' );\n\n\tif ( filmGauge !== undefined ) this.filmGauge = filmGauge;\n\tthis.setFocalLength( focalLength );\n\n};\n\n//\n\nObject.defineProperties( Light.prototype, {\n\tonlyShadow: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .onlyShadow has been removed.' );\n\n\t\t}\n\t},\n\tshadowCameraFov: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraFov is now .shadow.camera.fov.' );\n\t\t\tthis.shadow.camera.fov = value;\n\n\t\t}\n\t},\n\tshadowCameraLeft: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraLeft is now .shadow.camera.left.' );\n\t\t\tthis.shadow.camera.left = value;\n\n\t\t}\n\t},\n\tshadowCameraRight: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraRight is now .shadow.camera.right.' );\n\t\t\tthis.shadow.camera.right = value;\n\n\t\t}\n\t},\n\tshadowCameraTop: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraTop is now .shadow.camera.top.' );\n\t\t\tthis.shadow.camera.top = value;\n\n\t\t}\n\t},\n\tshadowCameraBottom: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.' );\n\t\t\tthis.shadow.camera.bottom = value;\n\n\t\t}\n\t},\n\tshadowCameraNear: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraNear is now .shadow.camera.near.' );\n\t\t\tthis.shadow.camera.near = value;\n\n\t\t}\n\t},\n\tshadowCameraFar: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraFar is now .shadow.camera.far.' );\n\t\t\tthis.shadow.camera.far = value;\n\n\t\t}\n\t},\n\tshadowCameraVisible: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.' );\n\n\t\t}\n\t},\n\tshadowBias: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowBias is now .shadow.bias.' );\n\t\t\tthis.shadow.bias = value;\n\n\t\t}\n\t},\n\tshadowDarkness: {\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowDarkness has been removed.' );\n\n\t\t}\n\t},\n\tshadowMapWidth: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.' );\n\t\t\tthis.shadow.mapSize.width = value;\n\n\t\t}\n\t},\n\tshadowMapHeight: {\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.' );\n\t\t\tthis.shadow.mapSize.height = value;\n\n\t\t}\n\t}\n} );\n\n//\n\nObject.defineProperties( BufferAttribute.prototype, {\n\n\tlength: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .length has been deprecated. Use .count instead.' );\n\t\t\treturn this.array.length;\n\n\t\t}\n\t},\n\tdynamic: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' );\n\t\t\treturn this.usage === DynamicDrawUsage;\n\n\t\t},\n\t\tset: function ( /* value */ ) {\n\n\t\t\tconsole.warn( 'THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.' );\n\t\t\tthis.setUsage( DynamicDrawUsage );\n\n\t\t}\n\t}\n\n} );\n\nBufferAttribute.prototype.setDynamic = function ( value ) {\n\n\tconsole.warn( 'THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.' );\n\tthis.setUsage( value === true ? DynamicDrawUsage : StaticDrawUsage );\n\treturn this;\n\n};\n\nBufferAttribute.prototype.copyIndicesArray = function ( /* indices */ ) {\n\n\tconsole.error( 'THREE.BufferAttribute: .copyIndicesArray() has been removed.' );\n\n},\n\nBufferAttribute.prototype.setArray = function ( /* array */ ) {\n\n\tconsole.error( 'THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' );\n\n};\n\n//\n\nBufferGeometry.prototype.addIndex = function ( index ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().' );\n\tthis.setIndex( index );\n\n};\n\nBufferGeometry.prototype.addAttribute = function ( name, attribute ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().' );\n\n\tif ( ! ( attribute && attribute.isBufferAttribute ) && ! ( attribute && attribute.isInterleavedBufferAttribute ) ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' );\n\n\t\treturn this.setAttribute( name, new BufferAttribute( arguments[ 1 ], arguments[ 2 ] ) );\n\n\t}\n\n\tif ( name === 'index' ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.' );\n\t\tthis.setIndex( attribute );\n\n\t\treturn this;\n\n\t}\n\n\treturn this.setAttribute( name, attribute );\n\n};\n\nBufferGeometry.prototype.addDrawCall = function ( start, count, indexOffset ) {\n\n\tif ( indexOffset !== undefined ) {\n\n\t\tconsole.warn( 'THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.' );\n\n\t}\n\n\tconsole.warn( 'THREE.BufferGeometry: .addDrawCall() is now .addGroup().' );\n\tthis.addGroup( start, count );\n\n};\n\nBufferGeometry.prototype.clearDrawCalls = function () {\n\n\tconsole.warn( 'THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().' );\n\tthis.clearGroups();\n\n};\n\nBufferGeometry.prototype.computeOffsets = function () {\n\n\tconsole.warn( 'THREE.BufferGeometry: .computeOffsets() has been removed.' );\n\n};\n\nBufferGeometry.prototype.removeAttribute = function ( name ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().' );\n\n\treturn this.deleteAttribute( name );\n\n};\n\nBufferGeometry.prototype.applyMatrix = function ( matrix ) {\n\n\tconsole.warn( 'THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().' );\n\treturn this.applyMatrix4( matrix );\n\n};\n\nObject.defineProperties( BufferGeometry.prototype, {\n\n\tdrawcalls: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .drawcalls has been renamed to .groups.' );\n\t\t\treturn this.groups;\n\n\t\t}\n\t},\n\toffsets: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry: .offsets has been renamed to .groups.' );\n\t\t\treturn this.groups;\n\n\t\t}\n\t}\n\n} );\n\nInterleavedBuffer.prototype.setDynamic = function ( value ) {\n\n\tconsole.warn( 'THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.' );\n\tthis.setUsage( value === true ? DynamicDrawUsage : StaticDrawUsage );\n\treturn this;\n\n};\n\nInterleavedBuffer.prototype.setArray = function ( /* array */ ) {\n\n\tconsole.error( 'THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers' );\n\n};\n\n//\n\nExtrudeGeometry.prototype.getArrays = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .getArrays() has been removed.' );\n\n};\n\nExtrudeGeometry.prototype.addShapeList = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .addShapeList() has been removed.' );\n\n};\n\nExtrudeGeometry.prototype.addShape = function () {\n\n\tconsole.error( 'THREE.ExtrudeGeometry: .addShape() has been removed.' );\n\n};\n\n//\n\nScene.prototype.dispose = function () {\n\n\tconsole.error( 'THREE.Scene: .dispose() has been removed.' );\n\n};\n\n//\n\nObject.defineProperties( Material$1.prototype, {\n\n\twrapAround: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapAround has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapAround has been removed.' );\n\n\t\t}\n\t},\n\n\toverdraw: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .overdraw has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .overdraw has been removed.' );\n\n\t\t}\n\t},\n\n\twrapRGB: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.Material: .wrapRGB has been removed.' );\n\t\t\treturn new Color();\n\n\t\t}\n\t},\n\n\tshading: {\n\t\tget: function () {\n\n\t\t\tconsole.error( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\t\t\tthis.flatShading = ( value === FlatShading );\n\n\t\t}\n\t},\n\n\tstencilMask: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.' );\n\t\t\treturn this.stencilFuncMask;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.' );\n\t\t\tthis.stencilFuncMask = value;\n\n\t\t}\n\t},\n\n\tvertexTangents: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.' + this.type + ': .vertexTangents has been removed.' );\n\n\t\t}\n\t},\n\n} );\n\nObject.defineProperties( ShaderMaterial.prototype, {\n\n\tderivatives: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' );\n\t\t\treturn this.extensions.derivatives;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.' );\n\t\t\tthis.extensions.derivatives = value;\n\n\t\t}\n\t}\n\n} );\n\n//\n\nWebGLRenderer.prototype.clearTarget = function ( renderTarget, color, depth, stencil ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.' );\n\tthis.setRenderTarget( renderTarget );\n\tthis.clear( color, depth, stencil );\n\n};\n\nWebGLRenderer.prototype.animate = function ( callback ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .animate() is now .setAnimationLoop().' );\n\tthis.setAnimationLoop( callback );\n\n};\n\nWebGLRenderer.prototype.getCurrentRenderTarget = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().' );\n\treturn this.getRenderTarget();\n\n};\n\nWebGLRenderer.prototype.getMaxAnisotropy = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().' );\n\treturn this.capabilities.getMaxAnisotropy();\n\n};\n\nWebGLRenderer.prototype.getPrecision = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.' );\n\treturn this.capabilities.precision;\n\n};\n\nWebGLRenderer.prototype.resetGLState = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .resetGLState() is now .state.reset().' );\n\treturn this.state.reset();\n\n};\n\nWebGLRenderer.prototype.supportsFloatTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \\'OES_texture_float\\' ).' );\n\treturn this.extensions.get( 'OES_texture_float' );\n\n};\n\nWebGLRenderer.prototype.supportsHalfFloatTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \\'OES_texture_half_float\\' ).' );\n\treturn this.extensions.get( 'OES_texture_half_float' );\n\n};\n\nWebGLRenderer.prototype.supportsStandardDerivatives = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \\'OES_standard_derivatives\\' ).' );\n\treturn this.extensions.get( 'OES_standard_derivatives' );\n\n};\n\nWebGLRenderer.prototype.supportsCompressedTextureS3TC = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \\'WEBGL_compressed_texture_s3tc\\' ).' );\n\treturn this.extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n};\n\nWebGLRenderer.prototype.supportsCompressedTexturePVRTC = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \\'WEBGL_compressed_texture_pvrtc\\' ).' );\n\treturn this.extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n};\n\nWebGLRenderer.prototype.supportsBlendMinMax = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \\'EXT_blend_minmax\\' ).' );\n\treturn this.extensions.get( 'EXT_blend_minmax' );\n\n};\n\nWebGLRenderer.prototype.supportsVertexTextures = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.' );\n\treturn this.capabilities.vertexTextures;\n\n};\n\nWebGLRenderer.prototype.supportsInstancedArrays = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \\'ANGLE_instanced_arrays\\' ).' );\n\treturn this.extensions.get( 'ANGLE_instanced_arrays' );\n\n};\n\nWebGLRenderer.prototype.enableScissorTest = function ( boolean ) {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().' );\n\tthis.setScissorTest( boolean );\n\n};\n\nWebGLRenderer.prototype.initMaterial = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .initMaterial() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.addPrePlugin = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .addPrePlugin() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.addPostPlugin = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .addPostPlugin() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.updateShadowMap = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setFaceCulling = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setFaceCulling() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.allocTextureUnit = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .allocTextureUnit() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTexture = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTexture() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTexture2D = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTexture2D() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.setTextureCube = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .setTextureCube() has been removed.' );\n\n};\n\nWebGLRenderer.prototype.getActiveMipMapLevel = function () {\n\n\tconsole.warn( 'THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().' );\n\treturn this.getActiveMipmapLevel();\n\n};\n\nObject.defineProperties( WebGLRenderer.prototype, {\n\n\tshadowMapEnabled: {\n\t\tget: function () {\n\n\t\t\treturn this.shadowMap.enabled;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.' );\n\t\t\tthis.shadowMap.enabled = value;\n\n\t\t}\n\t},\n\tshadowMapType: {\n\t\tget: function () {\n\n\t\t\treturn this.shadowMap.type;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.' );\n\t\t\tthis.shadowMap.type = value;\n\n\t\t}\n\t},\n\tshadowMapCullFace: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function ( /* value */ ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\tcontext: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.' );\n\t\t\treturn this.getContext();\n\n\t\t}\n\t},\n\tvr: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .vr has been renamed to .xr' );\n\t\t\treturn this.xr;\n\n\t\t}\n\t},\n\tgammaInput: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' );\n\t\t\treturn false;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.' );\n\n\t\t}\n\t},\n\tgammaOutput: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' );\n\t\t\treturn false;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.' );\n\t\t\tthis.outputEncoding = ( value === true ) ? sRGBEncoding : LinearEncoding;\n\n\t\t}\n\t},\n\ttoneMappingWhitePoint: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' );\n\t\t\treturn 1.0;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.' );\n\n\t\t}\n\t},\n\tgammaFactor: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );\n\t\t\treturn 2;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );\n\n\t\t}\n\t}\n} );\n\nObject.defineProperties( WebGLShadowMap.prototype, {\n\n\tcullFace: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function ( /* cullFace */ ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\trenderReverseSided: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t},\n\trenderSingleSided: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' );\n\t\t\treturn undefined;\n\n\t\t},\n\t\tset: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.' );\n\n\t\t}\n\t}\n\n} );\n\n//\n\nObject.defineProperties( WebGLRenderTarget.prototype, {\n\n\twrapS: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' );\n\t\t\treturn this.texture.wrapS;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.' );\n\t\t\tthis.texture.wrapS = value;\n\n\t\t}\n\t},\n\twrapT: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' );\n\t\t\treturn this.texture.wrapT;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.' );\n\t\t\tthis.texture.wrapT = value;\n\n\t\t}\n\t},\n\tmagFilter: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' );\n\t\t\treturn this.texture.magFilter;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.' );\n\t\t\tthis.texture.magFilter = value;\n\n\t\t}\n\t},\n\tminFilter: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' );\n\t\t\treturn this.texture.minFilter;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.' );\n\t\t\tthis.texture.minFilter = value;\n\n\t\t}\n\t},\n\tanisotropy: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' );\n\t\t\treturn this.texture.anisotropy;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.' );\n\t\t\tthis.texture.anisotropy = value;\n\n\t\t}\n\t},\n\toffset: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' );\n\t\t\treturn this.texture.offset;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .offset is now .texture.offset.' );\n\t\t\tthis.texture.offset = value;\n\n\t\t}\n\t},\n\trepeat: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' );\n\t\t\treturn this.texture.repeat;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .repeat is now .texture.repeat.' );\n\t\t\tthis.texture.repeat = value;\n\n\t\t}\n\t},\n\tformat: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' );\n\t\t\treturn this.texture.format;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .format is now .texture.format.' );\n\t\t\tthis.texture.format = value;\n\n\t\t}\n\t},\n\ttype: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' );\n\t\t\treturn this.texture.type;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .type is now .texture.type.' );\n\t\t\tthis.texture.type = value;\n\n\t\t}\n\t},\n\tgenerateMipmaps: {\n\t\tget: function () {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' );\n\t\t\treturn this.texture.generateMipmaps;\n\n\t\t},\n\t\tset: function ( value ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.' );\n\t\t\tthis.texture.generateMipmaps = value;\n\n\t\t}\n\t}\n\n} );\n\n//\n\nAudio.prototype.load = function ( file ) {\n\n\tconsole.warn( 'THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.' );\n\tconst scope = this;\n\tconst audioLoader = new AudioLoader();\n\taudioLoader.load( file, function ( buffer ) {\n\n\t\tscope.setBuffer( buffer );\n\n\t} );\n\treturn this;\n\n};\n\n//\n\nCubeCamera.prototype.updateCubeMap = function ( renderer, scene ) {\n\n\tconsole.warn( 'THREE.CubeCamera: .updateCubeMap() is now .update().' );\n\treturn this.update( renderer, scene );\n\n};\n\nCubeCamera.prototype.clear = function ( renderer, color, depth, stencil ) {\n\n\tconsole.warn( 'THREE.CubeCamera: .clear() is now .renderTarget.clear().' );\n\treturn this.renderTarget.clear( renderer, color, depth, stencil );\n\n};\n\nImageUtils.crossOrigin = undefined;\n\nImageUtils.loadTexture = function ( url, mapping, onLoad, onError ) {\n\n\tconsole.warn( 'THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.' );\n\n\tconst loader = new TextureLoader();\n\tloader.setCrossOrigin( this.crossOrigin );\n\n\tconst texture = loader.load( url, onLoad, undefined, onError );\n\n\tif ( mapping ) texture.mapping = mapping;\n\n\treturn texture;\n\n};\n\nImageUtils.loadTextureCube = function ( urls, mapping, onLoad, onError ) {\n\n\tconsole.warn( 'THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.' );\n\n\tconst loader = new CubeTextureLoader();\n\tloader.setCrossOrigin( this.crossOrigin );\n\n\tconst texture = loader.load( urls, onLoad, undefined, onError );\n\n\tif ( mapping ) texture.mapping = mapping;\n\n\treturn texture;\n\n};\n\nImageUtils.loadCompressedTexture = function () {\n\n\tconsole.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' );\n\n};\n\nImageUtils.loadCompressedTextureCube = function () {\n\n\tconsole.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' );\n\n};\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t$1=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,e$2=Symbol(),n$3=new Map;class s$3{constructor(t,n){if(this._$cssResult$=!0,n!==e$2)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t;}get styleSheet(){let e=n$3.get(this.cssText);return t$1&&void 0===e&&(n$3.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const o$3=t=>new s$3(\"string\"==typeof t?t:t+\"\",e$2),i$2=(e,n)=>{t$1?e.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((t=>{const n=document.createElement(\"style\"),s=window.litNonce;void 0!==s&&n.setAttribute(\"nonce\",s),n.textContent=t.cssText,e.appendChild(n);}));},S$1=t$1?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const n of t.cssRules)e+=n.cssText;return o$3(e)})(t):t;\n\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s$2;const e$1=window.trustedTypes,r$1=e$1?e$1.emptyScript:\"\",h$1=window.reactiveElementPolyfillSupport,o$2={toAttribute(t,i){switch(i){case Boolean:t=t?r$1:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t);}catch(t){s=null;}}return s}},n$2=(t,i)=>i!==t&&(i==i||t==t),l$2={attribute:!0,type:String,converter:o$2,reflect:!1,hasChanged:n$2};class a$1 extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o();}static addInitializer(t){var i;null!==(i=this.l)&&void 0!==i||(this.l=[]),this.l.push(t);}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Eh(s,i);void 0!==e&&(this._$Eu.set(e,s),t.push(e));})),t}static createProperty(t,i=l$2){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e);}}static getPropertyDescriptor(t,i,s){return {get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s);},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l$2}static finalize(){if(this.hasOwnProperty(\"finalized\"))return !1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s]);}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(S$1(i));}else void 0!==i&&s.push(S$1(i));return s}static _$Eh(t,i){const s=i.attribute;return !1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)));}addController(t){var i,s;(null!==(i=this._$Eg)&&void 0!==i?i:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t));}removeController(t){var i;null===(i=this._$Eg)||void 0===i||i.splice(this._$Eg.indexOf(t)>>>0,1);}_$Em(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Et.set(i,this[i]),delete this[i]);}));}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i$2(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}));}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}));}attributeChangedCallback(t,i,s){this._$AK(t,s);}_$ES(t,i,s=l$2){var e,r;const h=this.constructor._$Eh(t,s);if(void 0!==h&&!0===s.reflect){const n=(null!==(r=null===(e=s.converter)||void 0===e?void 0:e.toAttribute)&&void 0!==r?r:o$2.toAttribute)(i,s.type);this._$Ei=t,null==n?this.removeAttribute(h):this.setAttribute(h,n),this._$Ei=null;}}_$AK(t,i){var s,e,r;const h=this.constructor,n=h._$Eu.get(t);if(void 0!==n&&this._$Ei!==n){const t=h.getPropertyOptions(n),l=t.converter,a=null!==(r=null!==(e=null===(s=l)||void 0===s?void 0:s.fromAttribute)&&void 0!==e?e:\"function\"==typeof l?l:null)&&void 0!==r?r:o$2.fromAttribute;this._$Ei=n,this[n]=a(i,t.type),this._$Ei=null;}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||n$2)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$Ep=this._$E_());}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,i)=>this[i]=t)),this._$Et=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$EU();}catch(t){throw i=!1,this._$EU(),t}i&&this._$AE(s);}willUpdate(t){}_$AE(t){var i;null===(i=this._$Eg)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t);}_$EU(){this._$AL=new Map,this.isUpdatePending=!1;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return !0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$ES(i,this[i],t))),this._$EC=void 0),this._$EU();}updated(t){}firstUpdated(t){}}a$1.finalized=!0,a$1.elementProperties=new Map,a$1.elementStyles=[],a$1.shadowRootOptions={mode:\"open\"},null==h$1||h$1({ReactiveElement:a$1}),(null!==(s$2=globalThis.reactiveElementVersions)&&void 0!==s$2?s$2:globalThis.reactiveElementVersions=[]).push(\"1.3.2\");\n\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i$1=globalThis.trustedTypes,s$1=i$1?i$1.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=`lit$${(Math.random()+\"\").slice(9)}$`,o$1=\"?\"+e,n$1=`<${o$1}>`,l$1=document,h=(t=\"\")=>l$1.createComment(t),r=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,d=Array.isArray,u=t=>{var i;return d(t)||\"function\"==typeof(null===(i=t)||void 0===i?void 0:i[Symbol.iterator])},c=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,a=/>/g,f=/>|[ \t\\n\f\\r](?:([^\\s\"'>=/]+)([ \t\\n\f\\r]*=[ \t\\n\f\\r]*(?:[^ \t\\n\f\\r\"'`<>=]|(\"|')|))|$)/g,_=/'/g,m=/\"/g,g=/^(?:script|style|textarea|title)$/i,p=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),$=p(1),b=Symbol.for(\"lit-noChange\"),w=Symbol.for(\"lit-nothing\"),T=new WeakMap,x$1=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new N(i.insertBefore(h(),t),t,void 0,null!=s?s:{});}return l._$AI(t),l},A=l$1.createTreeWalker(l$1,129,null,!1),C=(t,i)=>{const o=t.length-1,l=[];let h,r=2===i?\"\":\"\",d=c;for(let i=0;i\"===u[0]?(d=null!=h?h:c,p=-1):void 0===u[1]?p=-2:(p=d.lastIndex-u[2].length,o=u[1],d=void 0===u[3]?f:'\"'===u[3]?m:_):d===m||d===_?d=f:d===v||d===a?d=c:(d=f,h=void 0);const y=d===f&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=d===c?s+n$1:p>=0?(l.push(o),s.slice(0,p)+\"$lit$\"+s.slice(p)+e+y):s+e+(-2===p?(l.push(void 0),i):y);}const u=r+(t[o]||\"\")+(2===i?\"\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return [void 0!==s$1?s$1.createHTML(u):u,l]};class E{constructor({strings:t,_$litType$:s},n){let l;this.parts=[];let r=0,d=0;const u=t.length-1,c=this.parts,[v,a]=C(t,s);if(this.el=E.createElement(v,n),A.currentNode=this.el.content,2===s){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes);}for(;null!==(l=A.nextNode())&&c.length0){l.textContent=i$1?i$1.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=w;}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=P(this,t,i,0),n=!r(t)||t!==this._$AH&&t!==b,n&&(this._$AH=t);else {const e=t;let l,h;for(t=o[0],l=0;l {\n const userAgent = navigator.userAgent || navigator.vendor || self.opera;\n let check = false;\n // eslint-disable-next-line\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\n .test(userAgent) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\n .test(userAgent.substr(0, 4))) {\n check = true;\n }\n return check;\n})();\n/\\bCrOS\\b/.test(navigator.userAgent);\nconst IS_ANDROID = /android/i.test(navigator.userAgent);\n// Prior to iOS 13, detecting iOS Safari was relatively straight-forward.\n// As of iOS 13, Safari on iPad (in its default configuration) reports the same\n// user-agent string as Safari on desktop MacOS. Strictly speaking, we only care\n// about iOS for the purposes if selecting for cases where Quick Look is known\n// to be supported. However, for API correctness purposes, we must rely on\n// known, detectable signals to distinguish iOS Safari from MacOS Safari. At the\n// time of this writing, there are no non-iOS/iPadOS Apple devices with\n// multi-touch displays.\n// @see https://stackoverflow.com/questions/57765958/how-to-detect-ipad-and-ipad-os-version-in-ios-13-and-up\n// @see https://forums.developer.apple.com/thread/119186\n// @see https://github.com/google/model-viewer/issues/758\nconst IS_IOS = (/iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\nconst IS_AR_QUICKLOOK_CANDIDATE = (() => {\n const tempAnchor = document.createElement('a');\n return Boolean(tempAnchor.relList && tempAnchor.relList.supports &&\n tempAnchor.relList.supports('ar'));\n})();\n// @see https://developer.chrome.com/multidevice/user-agent\n/Safari\\//.test(navigator.userAgent);\nconst IS_FIREFOX = /firefox/i.test(navigator.userAgent);\nconst IS_OCULUS = /OculusBrowser/.test(navigator.userAgent);\nIS_IOS && /CriOS\\//.test(navigator.userAgent);\nconst IS_SCENEVIEWER_CANDIDATE = IS_ANDROID && !IS_FIREFOX && !IS_OCULUS;\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar CloseIcon = $ `\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ControlsPrompt = $ `\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ARGlyph = $ `\n\n\n\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\n`;\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst templateResult = $ `\n\n
\n
\n
\n \n \n \n
\n\n
\n\n \n
\n \n \n \n
\n\n
\n \n \n ${ARGlyph}\n \n \n
\n\n
\n \n
\n
\n
\n
\n\n
\n
\n \n ${ControlsPrompt}\n \n
\n
\n\n
\n \n \n
\n
\n \n \n
\n\n
\n \n\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n \n \n ${CloseIcon}\n \n \n
\n
\n
\n
\n \n
`;\nconst makeTemplate = (shadowRoot) => {\n x$1(templateResult, shadowRoot);\n};\n\nconst _taskCache$1 = new WeakMap();\n\nclass DRACOLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.decoderPath = '';\n\t\tthis.decoderConfig = {};\n\t\tthis.decoderBinary = null;\n\t\tthis.decoderPending = null;\n\n\t\tthis.workerLimit = 4;\n\t\tthis.workerPool = [];\n\t\tthis.workerNextTaskID = 1;\n\t\tthis.workerSourceURL = '';\n\n\t\tthis.defaultAttributeIDs = {\n\t\t\tposition: 'POSITION',\n\t\t\tnormal: 'NORMAL',\n\t\t\tcolor: 'COLOR',\n\t\t\tuv: 'TEX_COORD'\n\t\t};\n\t\tthis.defaultAttributeTypes = {\n\t\t\tposition: 'Float32Array',\n\t\t\tnormal: 'Float32Array',\n\t\t\tcolor: 'Float32Array',\n\t\t\tuv: 'Float32Array'\n\t\t};\n\n\t}\n\n\tsetDecoderPath( path ) {\n\n\t\tthis.decoderPath = path;\n\n\t\treturn this;\n\n\t}\n\n\tsetDecoderConfig( config ) {\n\n\t\tthis.decoderConfig = config;\n\n\t\treturn this;\n\n\t}\n\n\tsetWorkerLimit( workerLimit ) {\n\n\t\tthis.workerLimit = workerLimit;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, ( buffer ) => {\n\n\t\t\tconst taskConfig = {\n\t\t\t\tattributeIDs: this.defaultAttributeIDs,\n\t\t\t\tattributeTypes: this.defaultAttributeTypes,\n\t\t\t\tuseUniqueIDs: false\n\t\t\t};\n\n\t\t\tthis.decodeGeometry( buffer, taskConfig )\n\t\t\t\t.then( onLoad )\n\t\t\t\t.catch( onError );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\t/** @deprecated Kept for backward-compatibility with previous DRACOLoader versions. */\n\tdecodeDracoFile( buffer, callback, attributeIDs, attributeTypes ) {\n\n\t\tconst taskConfig = {\n\t\t\tattributeIDs: attributeIDs || this.defaultAttributeIDs,\n\t\t\tattributeTypes: attributeTypes || this.defaultAttributeTypes,\n\t\t\tuseUniqueIDs: !! attributeIDs\n\t\t};\n\n\t\tthis.decodeGeometry( buffer, taskConfig ).then( callback );\n\n\t}\n\n\tdecodeGeometry( buffer, taskConfig ) {\n\n\t\t// TODO: For backward-compatibility, support 'attributeTypes' objects containing\n\t\t// references (rather than names) to typed array constructors. These must be\n\t\t// serialized before sending them to the worker.\n\t\tfor ( const attribute in taskConfig.attributeTypes ) {\n\n\t\t\tconst type = taskConfig.attributeTypes[ attribute ];\n\n\t\t\tif ( type.BYTES_PER_ELEMENT !== undefined ) {\n\n\t\t\t\ttaskConfig.attributeTypes[ attribute ] = type.name;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst taskKey = JSON.stringify( taskConfig );\n\n\t\t// Check for an existing task using this buffer. A transferred buffer cannot be transferred\n\t\t// again from this thread.\n\t\tif ( _taskCache$1.has( buffer ) ) {\n\n\t\t\tconst cachedTask = _taskCache$1.get( buffer );\n\n\t\t\tif ( cachedTask.key === taskKey ) {\n\n\t\t\t\treturn cachedTask.promise;\n\n\t\t\t} else if ( buffer.byteLength === 0 ) {\n\n\t\t\t\t// Technically, it would be possible to wait for the previous task to complete,\n\t\t\t\t// transfer the buffer back, and decode again with the second configuration. That\n\t\t\t\t// is complex, and I don't know of any reason to decode a Draco buffer twice in\n\t\t\t\t// different ways, so this is left unimplemented.\n\t\t\t\tthrow new Error(\n\n\t\t\t\t\t'THREE.DRACOLoader: Unable to re-decode a buffer with different ' +\n\t\t\t\t\t'settings. Buffer has already been transferred.'\n\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tlet worker;\n\t\tconst taskID = this.workerNextTaskID ++;\n\t\tconst taskCost = buffer.byteLength;\n\n\t\t// Obtain a worker and assign a task, and construct a geometry instance\n\t\t// when the task completes.\n\t\tconst geometryPending = this._getWorker( taskID, taskCost )\n\t\t\t.then( ( _worker ) => {\n\n\t\t\t\tworker = _worker;\n\n\t\t\t\treturn new Promise( ( resolve, reject ) => {\n\n\t\t\t\t\tworker._callbacks[ taskID ] = { resolve, reject };\n\n\t\t\t\t\tworker.postMessage( { type: 'decode', id: taskID, taskConfig, buffer }, [ buffer ] );\n\n\t\t\t\t\t// this.debug();\n\n\t\t\t\t} );\n\n\t\t\t} )\n\t\t\t.then( ( message ) => this._createGeometry( message.geometry ) );\n\n\t\t// Remove task from the task list.\n\t\t// Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)\n\t\tgeometryPending\n\t\t\t.catch( () => true )\n\t\t\t.then( () => {\n\n\t\t\t\tif ( worker && taskID ) {\n\n\t\t\t\t\tthis._releaseTask( worker, taskID );\n\n\t\t\t\t\t// this.debug();\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t// Cache the task result.\n\t\t_taskCache$1.set( buffer, {\n\n\t\t\tkey: taskKey,\n\t\t\tpromise: geometryPending\n\n\t\t} );\n\n\t\treturn geometryPending;\n\n\t}\n\n\t_createGeometry( geometryData ) {\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tif ( geometryData.index ) {\n\n\t\t\tgeometry.setIndex( new BufferAttribute( geometryData.index.array, 1 ) );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < geometryData.attributes.length; i ++ ) {\n\n\t\t\tconst attribute = geometryData.attributes[ i ];\n\t\t\tconst name = attribute.name;\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\n\t\t\tgeometry.setAttribute( name, new BufferAttribute( array, itemSize ) );\n\n\t\t}\n\n\t\treturn geometry;\n\n\t}\n\n\t_loadLibrary( url, responseType ) {\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.decoderPath );\n\t\tloader.setResponseType( responseType );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\treturn new Promise( ( resolve, reject ) => {\n\n\t\t\tloader.load( url, resolve, undefined, reject );\n\n\t\t} );\n\n\t}\n\n\tpreload() {\n\n\t\tthis._initDecoder();\n\n\t\treturn this;\n\n\t}\n\n\t_initDecoder() {\n\n\t\tif ( this.decoderPending ) return this.decoderPending;\n\n\t\tconst useJS = typeof WebAssembly !== 'object' || this.decoderConfig.type === 'js';\n\t\tconst librariesPending = [];\n\n\t\tif ( useJS ) {\n\n\t\t\tlibrariesPending.push( this._loadLibrary( 'draco_decoder.js', 'text' ) );\n\n\t\t} else {\n\n\t\t\tlibrariesPending.push( this._loadLibrary( 'draco_wasm_wrapper.js', 'text' ) );\n\t\t\tlibrariesPending.push( this._loadLibrary( 'draco_decoder.wasm', 'arraybuffer' ) );\n\n\t\t}\n\n\t\tthis.decoderPending = Promise.all( librariesPending )\n\t\t\t.then( ( libraries ) => {\n\n\t\t\t\tconst jsContent = libraries[ 0 ];\n\n\t\t\t\tif ( ! useJS ) {\n\n\t\t\t\t\tthis.decoderConfig.wasmBinary = libraries[ 1 ];\n\n\t\t\t\t}\n\n\t\t\t\tconst fn = DRACOWorker.toString();\n\n\t\t\t\tconst body = [\n\t\t\t\t\t'/* draco decoder */',\n\t\t\t\t\tjsContent,\n\t\t\t\t\t'',\n\t\t\t\t\t'/* worker */',\n\t\t\t\t\tfn.substring( fn.indexOf( '{' ) + 1, fn.lastIndexOf( '}' ) )\n\t\t\t\t].join( '\\n' );\n\n\t\t\t\tthis.workerSourceURL = URL.createObjectURL( new Blob( [ body ] ) );\n\n\t\t\t} );\n\n\t\treturn this.decoderPending;\n\n\t}\n\n\t_getWorker( taskID, taskCost ) {\n\n\t\treturn this._initDecoder().then( () => {\n\n\t\t\tif ( this.workerPool.length < this.workerLimit ) {\n\n\t\t\t\tconst worker = new Worker( this.workerSourceURL );\n\n\t\t\t\tworker._callbacks = {};\n\t\t\t\tworker._taskCosts = {};\n\t\t\t\tworker._taskLoad = 0;\n\n\t\t\t\tworker.postMessage( { type: 'init', decoderConfig: this.decoderConfig } );\n\n\t\t\t\tworker.onmessage = function ( e ) {\n\n\t\t\t\t\tconst message = e.data;\n\n\t\t\t\t\tswitch ( message.type ) {\n\n\t\t\t\t\t\tcase 'decode':\n\t\t\t\t\t\t\tworker._callbacks[ message.id ].resolve( message );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'error':\n\t\t\t\t\t\t\tworker._callbacks[ message.id ].reject( message );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.DRACOLoader: Unexpected message, \"' + message.type + '\"' );\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t\tthis.workerPool.push( worker );\n\n\t\t\t} else {\n\n\t\t\t\tthis.workerPool.sort( function ( a, b ) {\n\n\t\t\t\t\treturn a._taskLoad > b._taskLoad ? - 1 : 1;\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tconst worker = this.workerPool[ this.workerPool.length - 1 ];\n\t\t\tworker._taskCosts[ taskID ] = taskCost;\n\t\t\tworker._taskLoad += taskCost;\n\t\t\treturn worker;\n\n\t\t} );\n\n\t}\n\n\t_releaseTask( worker, taskID ) {\n\n\t\tworker._taskLoad -= worker._taskCosts[ taskID ];\n\t\tdelete worker._callbacks[ taskID ];\n\t\tdelete worker._taskCosts[ taskID ];\n\n\t}\n\n\tdebug() {\n\n\t\tconsole.log( 'Task load: ', this.workerPool.map( ( worker ) => worker._taskLoad ) );\n\n\t}\n\n\tdispose() {\n\n\t\tfor ( let i = 0; i < this.workerPool.length; ++ i ) {\n\n\t\t\tthis.workerPool[ i ].terminate();\n\n\t\t}\n\n\t\tthis.workerPool.length = 0;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/* WEB WORKER */\n\nfunction DRACOWorker() {\n\n\tlet decoderConfig;\n\tlet decoderPending;\n\n\tonmessage = function ( e ) {\n\n\t\tconst message = e.data;\n\n\t\tswitch ( message.type ) {\n\n\t\t\tcase 'init':\n\t\t\t\tdecoderConfig = message.decoderConfig;\n\t\t\t\tdecoderPending = new Promise( function ( resolve/*, reject*/ ) {\n\n\t\t\t\t\tdecoderConfig.onModuleLoaded = function ( draco ) {\n\n\t\t\t\t\t\t// Module is Promise-like. Wrap before resolving to avoid loop.\n\t\t\t\t\t\tresolve( { draco: draco } );\n\n\t\t\t\t\t};\n\n\t\t\t\t\tDracoDecoderModule( decoderConfig ); // eslint-disable-line no-undef\n\n\t\t\t\t} );\n\t\t\t\tbreak;\n\n\t\t\tcase 'decode':\n\t\t\t\tconst buffer = message.buffer;\n\t\t\t\tconst taskConfig = message.taskConfig;\n\t\t\t\tdecoderPending.then( ( module ) => {\n\n\t\t\t\t\tconst draco = module.draco;\n\t\t\t\t\tconst decoder = new draco.Decoder();\n\t\t\t\t\tconst decoderBuffer = new draco.DecoderBuffer();\n\t\t\t\t\tdecoderBuffer.Init( new Int8Array( buffer ), buffer.byteLength );\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\tconst geometry = decodeGeometry( draco, decoder, decoderBuffer, taskConfig );\n\n\t\t\t\t\t\tconst buffers = geometry.attributes.map( ( attr ) => attr.array.buffer );\n\n\t\t\t\t\t\tif ( geometry.index ) buffers.push( geometry.index.array.buffer );\n\n\t\t\t\t\t\tself.postMessage( { type: 'decode', id: message.id, geometry }, buffers );\n\n\t\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\t\tconsole.error( error );\n\n\t\t\t\t\t\tself.postMessage( { type: 'error', id: message.id, error: error.message } );\n\n\t\t\t\t\t} finally {\n\n\t\t\t\t\t\tdraco.destroy( decoderBuffer );\n\t\t\t\t\t\tdraco.destroy( decoder );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t};\n\n\tfunction decodeGeometry( draco, decoder, decoderBuffer, taskConfig ) {\n\n\t\tconst attributeIDs = taskConfig.attributeIDs;\n\t\tconst attributeTypes = taskConfig.attributeTypes;\n\n\t\tlet dracoGeometry;\n\t\tlet decodingStatus;\n\n\t\tconst geometryType = decoder.GetEncodedGeometryType( decoderBuffer );\n\n\t\tif ( geometryType === draco.TRIANGULAR_MESH ) {\n\n\t\t\tdracoGeometry = new draco.Mesh();\n\t\t\tdecodingStatus = decoder.DecodeBufferToMesh( decoderBuffer, dracoGeometry );\n\n\t\t} else if ( geometryType === draco.POINT_CLOUD ) {\n\n\t\t\tdracoGeometry = new draco.PointCloud();\n\t\t\tdecodingStatus = decoder.DecodeBufferToPointCloud( decoderBuffer, dracoGeometry );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.DRACOLoader: Unexpected geometry type.' );\n\n\t\t}\n\n\t\tif ( ! decodingStatus.ok() || dracoGeometry.ptr === 0 ) {\n\n\t\t\tthrow new Error( 'THREE.DRACOLoader: Decoding failed: ' + decodingStatus.error_msg() );\n\n\t\t}\n\n\t\tconst geometry = { index: null, attributes: [] };\n\n\t\t// Gather all vertex attributes.\n\t\tfor ( const attributeName in attributeIDs ) {\n\n\t\t\tconst attributeType = self[ attributeTypes[ attributeName ] ];\n\n\t\t\tlet attribute;\n\t\t\tlet attributeID;\n\n\t\t\t// A Draco file may be created with default vertex attributes, whose attribute IDs\n\t\t\t// are mapped 1:1 from their semantic name (POSITION, NORMAL, ...). Alternatively,\n\t\t\t// a Draco file may contain a custom set of attributes, identified by known unique\n\t\t\t// IDs. glTF files always do the latter, and `.drc` files typically do the former.\n\t\t\tif ( taskConfig.useUniqueIDs ) {\n\n\t\t\t\tattributeID = attributeIDs[ attributeName ];\n\t\t\t\tattribute = decoder.GetAttributeByUniqueId( dracoGeometry, attributeID );\n\n\t\t\t} else {\n\n\t\t\t\tattributeID = decoder.GetAttributeId( dracoGeometry, draco[ attributeIDs[ attributeName ] ] );\n\n\t\t\t\tif ( attributeID === - 1 ) continue;\n\n\t\t\t\tattribute = decoder.GetAttribute( dracoGeometry, attributeID );\n\n\t\t\t}\n\n\t\t\tgeometry.attributes.push( decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ) );\n\n\t\t}\n\n\t\t// Add index.\n\t\tif ( geometryType === draco.TRIANGULAR_MESH ) {\n\n\t\t\tgeometry.index = decodeIndex( draco, decoder, dracoGeometry );\n\n\t\t}\n\n\t\tdraco.destroy( dracoGeometry );\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction decodeIndex( draco, decoder, dracoGeometry ) {\n\n\t\tconst numFaces = dracoGeometry.num_faces();\n\t\tconst numIndices = numFaces * 3;\n\t\tconst byteLength = numIndices * 4;\n\n\t\tconst ptr = draco._malloc( byteLength );\n\t\tdecoder.GetTrianglesUInt32Array( dracoGeometry, byteLength, ptr );\n\t\tconst index = new Uint32Array( draco.HEAPF32.buffer, ptr, numIndices ).slice();\n\t\tdraco._free( ptr );\n\n\t\treturn { array: index, itemSize: 1 };\n\n\t}\n\n\tfunction decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute ) {\n\n\t\tconst numComponents = attribute.num_components();\n\t\tconst numPoints = dracoGeometry.num_points();\n\t\tconst numValues = numPoints * numComponents;\n\t\tconst byteLength = numValues * attributeType.BYTES_PER_ELEMENT;\n\t\tconst dataType = getDracoDataType( draco, attributeType );\n\n\t\tconst ptr = draco._malloc( byteLength );\n\t\tdecoder.GetAttributeDataArrayForAllPoints( dracoGeometry, attribute, dataType, byteLength, ptr );\n\t\tconst array = new attributeType( draco.HEAPF32.buffer, ptr, numValues ).slice();\n\t\tdraco._free( ptr );\n\n\t\treturn {\n\t\t\tname: attributeName,\n\t\t\tarray: array,\n\t\t\titemSize: numComponents\n\t\t};\n\n\t}\n\n\tfunction getDracoDataType( draco, attributeType ) {\n\n\t\tswitch ( attributeType ) {\n\n\t\t\tcase Float32Array: return draco.DT_FLOAT32;\n\t\t\tcase Int8Array: return draco.DT_INT8;\n\t\t\tcase Int16Array: return draco.DT_INT16;\n\t\t\tcase Int32Array: return draco.DT_INT32;\n\t\t\tcase Uint8Array: return draco.DT_UINT8;\n\t\t\tcase Uint16Array: return draco.DT_UINT16;\n\t\t\tcase Uint32Array: return draco.DT_UINT32;\n\n\t\t}\n\n\t}\n\n}\n\nclass GLTFLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.dracoLoader = null;\n\t\tthis.ktx2Loader = null;\n\t\tthis.meshoptDecoder = null;\n\n\t\tthis.pluginCallbacks = [];\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsClearcoatExtension$1( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureBasisUExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFTextureWebPExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSheenExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsTransmissionExtension$1( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsVolumeExtension$1( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsIorExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMaterialsSpecularExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFLightsExtension( parser );\n\n\t\t} );\n\n\t\tthis.register( function ( parser ) {\n\n\t\t\treturn new GLTFMeshoptCompression( parser );\n\n\t\t} );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet resourcePath;\n\n\t\tif ( this.resourcePath !== '' ) {\n\n\t\t\tresourcePath = this.resourcePath;\n\n\t\t} else if ( this.path !== '' ) {\n\n\t\t\tresourcePath = this.path;\n\n\t\t} else {\n\n\t\t\tresourcePath = LoaderUtils.extractUrlBase( url );\n\n\t\t}\n\n\t\t// Tells the LoadingManager to track an extra item, which resolves after\n\t\t// the model is fully loaded. This means the count of items loaded will\n\t\t// be incorrect, but ensures manager.onLoad() does not fire early.\n\t\tthis.manager.itemStart( url );\n\n\t\tconst _onError = function ( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t};\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tloader.load( url, function ( data ) {\n\n\t\t\ttry {\n\n\t\t\t\tscope.parse( data, resourcePath, function ( gltf ) {\n\n\t\t\t\t\tonLoad( gltf );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t}, _onError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\t_onError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, _onError );\n\n\t}\n\n\tsetDRACOLoader( dracoLoader ) {\n\n\t\tthis.dracoLoader = dracoLoader;\n\t\treturn this;\n\n\t}\n\n\tsetDDSLoader() {\n\n\t\tthrow new Error(\n\n\t\t\t'THREE.GLTFLoader: \"MSFT_texture_dds\" no longer supported. Please update to \"KHR_texture_basisu\".'\n\n\t\t);\n\n\t}\n\n\tsetKTX2Loader( ktx2Loader ) {\n\n\t\tthis.ktx2Loader = ktx2Loader;\n\t\treturn this;\n\n\t}\n\n\tsetMeshoptDecoder( meshoptDecoder ) {\n\n\t\tthis.meshoptDecoder = meshoptDecoder;\n\t\treturn this;\n\n\t}\n\n\tregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {\n\n\t\t\tthis.pluginCallbacks.push( callback );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {\n\n\t\t\tthis.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tparse( data, path, onLoad, onError ) {\n\n\t\tlet content;\n\t\tconst extensions = {};\n\t\tconst plugins = {};\n\n\t\tif ( typeof data === 'string' ) {\n\n\t\t\tcontent = data;\n\n\t\t} else {\n\n\t\t\tconst magic = LoaderUtils.decodeText( new Uint8Array( data, 0, 4 ) );\n\n\t\t\tif ( magic === BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\textensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data );\n\n\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\tif ( onError ) onError( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tcontent = extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content;\n\n\t\t\t} else {\n\n\t\t\t\tcontent = LoaderUtils.decodeText( new Uint8Array( data ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst json = JSON.parse( content );\n\n\t\tif ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) {\n\n\t\t\tif ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst parser = new GLTFParser( json, {\n\n\t\t\tpath: path || this.resourcePath || '',\n\t\t\tcrossOrigin: this.crossOrigin,\n\t\t\trequestHeader: this.requestHeader,\n\t\t\tmanager: this.manager,\n\t\t\tktx2Loader: this.ktx2Loader,\n\t\t\tmeshoptDecoder: this.meshoptDecoder\n\n\t\t} );\n\n\t\tparser.fileLoader.setRequestHeader( this.requestHeader );\n\n\t\tfor ( let i = 0; i < this.pluginCallbacks.length; i ++ ) {\n\n\t\t\tconst plugin = this.pluginCallbacks[ i ]( parser );\n\t\t\tplugins[ plugin.name ] = plugin;\n\n\t\t\t// Workaround to avoid determining as unknown extension\n\t\t\t// in addUnknownExtensionsToUserData().\n\t\t\t// Remove this workaround if we move all the existing\n\t\t\t// extension handlers to plugin system\n\t\t\textensions[ plugin.name ] = true;\n\n\t\t}\n\n\t\tif ( json.extensionsUsed ) {\n\n\t\t\tfor ( let i = 0; i < json.extensionsUsed.length; ++ i ) {\n\n\t\t\t\tconst extensionName = json.extensionsUsed[ i ];\n\t\t\t\tconst extensionsRequired = json.extensionsRequired || [];\n\n\t\t\t\tswitch ( extensionName ) {\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MATERIALS_UNLIT:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMaterialsUnlitExtension$1();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMaterialsPbrSpecularGlossinessExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_DRACO_MESH_COMPRESSION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_TEXTURE_TRANSFORM:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFTextureTransformExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXTENSIONS.KHR_MESH_QUANTIZATION:\n\t\t\t\t\t\textensions[ extensionName ] = new GLTFMeshQuantizationExtension();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {\n\n\t\t\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Unknown extension \"' + extensionName + '\".' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tparser.setExtensions( extensions );\n\t\tparser.setPlugins( plugins );\n\t\tparser.parse( onLoad, onError );\n\n\t}\n\n\tparseAsync( data, path ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.parse( data, path, resolve, reject );\n\n\t\t} );\n\n\t}\n\n}\n\n/* GLTFREGISTRY */\n\nfunction GLTFRegistry() {\n\n\tlet objects = {};\n\n\treturn\t{\n\n\t\tget: function ( key ) {\n\n\t\t\treturn objects[ key ];\n\n\t\t},\n\n\t\tadd: function ( key, object ) {\n\n\t\t\tobjects[ key ] = object;\n\n\t\t},\n\n\t\tremove: function ( key ) {\n\n\t\t\tdelete objects[ key ];\n\n\t\t},\n\n\t\tremoveAll: function () {\n\n\t\t\tobjects = {};\n\n\t\t}\n\n\t};\n\n}\n\n/*********************************/\n/********** EXTENSIONS ***********/\n/*********************************/\n\nconst EXTENSIONS = {\n\tKHR_BINARY_GLTF: 'KHR_binary_glTF',\n\tKHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression',\n\tKHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual',\n\tKHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat',\n\tKHR_MATERIALS_IOR: 'KHR_materials_ior',\n\tKHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: 'KHR_materials_pbrSpecularGlossiness',\n\tKHR_MATERIALS_SHEEN: 'KHR_materials_sheen',\n\tKHR_MATERIALS_SPECULAR: 'KHR_materials_specular',\n\tKHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission',\n\tKHR_MATERIALS_UNLIT: 'KHR_materials_unlit',\n\tKHR_MATERIALS_VOLUME: 'KHR_materials_volume',\n\tKHR_TEXTURE_BASISU: 'KHR_texture_basisu',\n\tKHR_TEXTURE_TRANSFORM: 'KHR_texture_transform',\n\tKHR_MESH_QUANTIZATION: 'KHR_mesh_quantization',\n\tEXT_TEXTURE_WEBP: 'EXT_texture_webp',\n\tEXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression'\n};\n\n/**\n * Punctual Lights Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n */\nclass GLTFLightsExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL;\n\n\t\t// Object3D instance caches\n\t\tthis.cache = { refs: {}, uses: {} };\n\n\t}\n\n\t_markDefs() {\n\n\t\tconst parser = this.parser;\n\t\tconst nodeDefs = this.parser.json.nodes || [];\n\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.extensions\n\t\t\t\t\t&& nodeDef.extensions[ this.name ]\n\t\t\t\t\t&& nodeDef.extensions[ this.name ].light !== undefined ) {\n\n\t\t\t\tparser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_loadLight( lightIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst cacheKey = 'light:' + lightIndex;\n\t\tlet dependency = parser.cache.get( cacheKey );\n\n\t\tif ( dependency ) return dependency;\n\n\t\tconst json = parser.json;\n\t\tconst extensions = ( json.extensions && json.extensions[ this.name ] ) || {};\n\t\tconst lightDefs = extensions.lights || [];\n\t\tconst lightDef = lightDefs[ lightIndex ];\n\t\tlet lightNode;\n\n\t\tconst color = new Color( 0xffffff );\n\n\t\tif ( lightDef.color !== undefined ) color.fromArray( lightDef.color );\n\n\t\tconst range = lightDef.range !== undefined ? lightDef.range : 0;\n\n\t\tswitch ( lightDef.type ) {\n\n\t\t\tcase 'directional':\n\t\t\t\tlightNode = new DirectionalLight( color );\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tcase 'point':\n\t\t\t\tlightNode = new PointLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\tbreak;\n\n\t\t\tcase 'spot':\n\t\t\t\tlightNode = new SpotLight( color );\n\t\t\t\tlightNode.distance = range;\n\t\t\t\t// Handle spotlight properties.\n\t\t\t\tlightDef.spot = lightDef.spot || {};\n\t\t\t\tlightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0;\n\t\t\t\tlightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0;\n\t\t\t\tlightNode.angle = lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle;\n\t\t\t\tlightNode.target.position.set( 0, 0, - 1 );\n\t\t\t\tlightNode.add( lightNode.target );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Unexpected light type: ' + lightDef.type );\n\n\t\t}\n\n\t\t// Some lights (e.g. spot) default to a position other than the origin. Reset the position\n\t\t// here, because node-level parsing will only override position if explicitly specified.\n\t\tlightNode.position.set( 0, 0, 0 );\n\n\t\tlightNode.decay = 2;\n\n\t\tif ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity;\n\n\t\tlightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) );\n\n\t\tdependency = Promise.resolve( lightNode );\n\n\t\tparser.cache.add( cacheKey, dependency );\n\n\t\treturn dependency;\n\n\t}\n\n\tcreateNodeAttachment( nodeIndex ) {\n\n\t\tconst self = this;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\t\tconst lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {};\n\t\tconst lightIndex = lightDef.light;\n\n\t\tif ( lightIndex === undefined ) return null;\n\n\t\treturn this._loadLight( lightIndex ).then( function ( light ) {\n\n\t\t\treturn parser._getNodeRef( self.cache, lightIndex, light );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Unlit Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n */\nclass GLTFMaterialsUnlitExtension$1 {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_UNLIT;\n\n\t}\n\n\tgetMaterialType() {\n\n\t\treturn MeshBasicMaterial;\n\n\t}\n\n\textendParams( materialParams, materialDef, parser ) {\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\tmaterialParams.opacity = 1.0;\n\n\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness;\n\n\t\tif ( metallicRoughness ) {\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.fromArray( array );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, sRGBEncoding ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Clearcoat Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat\n */\nclass GLTFMaterialsClearcoatExtension$1 {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.clearcoatFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoat = extension.clearcoatFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.clearcoatRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) );\n\n\t\t}\n\n\t\tif ( extension.clearcoatNormalTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) );\n\n\t\t\tif ( extension.clearcoatNormalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = extension.clearcoatNormalTexture.scale;\n\n\t\t\t\tmaterialParams.clearcoatNormalScale = new Vector2( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Sheen Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen\n */\nclass GLTFMaterialsSheenExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SHEEN;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tmaterialParams.sheenColor = new Color( 0, 0, 0 );\n\t\tmaterialParams.sheenRoughness = 0;\n\t\tmaterialParams.sheen = 1;\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.sheenColorFactor !== undefined ) {\n\n\t\t\tmaterialParams.sheenColor.fromArray( extension.sheenColorFactor );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessFactor !== undefined ) {\n\n\t\t\tmaterialParams.sheenRoughness = extension.sheenRoughnessFactor;\n\n\t\t}\n\n\t\tif ( extension.sheenColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, sRGBEncoding ) );\n\n\t\t}\n\n\t\tif ( extension.sheenRoughnessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'sheenRoughnessMap', extension.sheenRoughnessTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Transmission Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission\n * Draft: https://github.com/KhronosGroup/glTF/pull/1698\n */\nclass GLTFMaterialsTransmissionExtension$1 {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tif ( extension.transmissionFactor !== undefined ) {\n\n\t\t\tmaterialParams.transmission = extension.transmissionFactor;\n\n\t\t}\n\n\t\tif ( extension.transmissionTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials Volume Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume\n */\nclass GLTFMaterialsVolumeExtension$1 {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_VOLUME;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0;\n\n\t\tif ( extension.thicknessTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'thicknessMap', extension.thicknessTexture ) );\n\n\t\t}\n\n\t\tmaterialParams.attenuationDistance = extension.attenuationDistance || 0;\n\n\t\tconst colorArray = extension.attenuationColor || [ 1, 1, 1 ];\n\t\tmaterialParams.attenuationColor = new Color( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ] );\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * Materials ior Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior\n */\nclass GLTFMaterialsIorExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_IOR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.ior = extension.ior !== undefined ? extension.ior : 1.5;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n}\n\n/**\n * Materials specular Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular\n */\nclass GLTFMaterialsSpecularExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_SPECULAR;\n\n\t}\n\n\tgetMaterialType( materialIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null;\n\n\t\treturn MeshPhysicalMaterial;\n\n\t}\n\n\textendMaterialParams( materialIndex, materialParams ) {\n\n\t\tconst parser = this.parser;\n\t\tconst materialDef = parser.json.materials[ materialIndex ];\n\n\t\tif ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) {\n\n\t\t\treturn Promise.resolve();\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tconst extension = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0;\n\n\t\tif ( extension.specularTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularIntensityMap', extension.specularTexture ) );\n\n\t\t}\n\n\t\tconst colorArray = extension.specularColorFactor || [ 1, 1, 1 ];\n\t\tmaterialParams.specularColor = new Color( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ] );\n\n\t\tif ( extension.specularColorTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, sRGBEncoding ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n}\n\n/**\n * BasisU Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu\n */\nclass GLTFTextureBasisUExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_BASISU;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ this.name ];\n\t\tconst loader = parser.options.ktx2Loader;\n\n\t\tif ( ! loader ) {\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' );\n\n\t\t\t} else {\n\n\t\t\t\t// Assumes that the extension is optional and that a fallback texture is present\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t}\n\n}\n\n/**\n * WebP Texture Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp\n */\nclass GLTFTextureWebPExtension {\n\n\tconstructor( parser ) {\n\n\t\tthis.parser = parser;\n\t\tthis.name = EXTENSIONS.EXT_TEXTURE_WEBP;\n\t\tthis.isSupported = null;\n\n\t}\n\n\tloadTexture( textureIndex ) {\n\n\t\tconst name = this.name;\n\t\tconst parser = this.parser;\n\t\tconst json = parser.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\n\t\tif ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst extension = textureDef.extensions[ name ];\n\t\tconst source = json.images[ extension.source ];\n\n\t\tlet loader = parser.textureLoader;\n\t\tif ( source.uri ) {\n\n\t\t\tconst handler = parser.options.manager.getHandler( source.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.detectSupport().then( function ( isSupported ) {\n\n\t\t\tif ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );\n\n\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFLoader: WebP required by asset but unsupported.' );\n\n\t\t\t}\n\n\t\t\t// Fall back to PNG or JPEG.\n\t\t\treturn parser.loadTexture( textureIndex );\n\n\t\t} );\n\n\t}\n\n\tdetectSupport() {\n\n\t\tif ( ! this.isSupported ) {\n\n\t\t\tthis.isSupported = new Promise( function ( resolve ) {\n\n\t\t\t\tconst image = new Image();\n\n\t\t\t\t// Lossy test image. Support for lossy images doesn't guarantee support for all\n\t\t\t\t// WebP images, unfortunately.\n\t\t\t\timage.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA';\n\n\t\t\t\timage.onload = image.onerror = function () {\n\n\t\t\t\t\tresolve( image.height === 1 );\n\n\t\t\t\t};\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this.isSupported;\n\n\t}\n\n}\n\n/**\n * meshopt BufferView Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression\n */\nclass GLTFMeshoptCompression {\n\n\tconstructor( parser ) {\n\n\t\tthis.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION;\n\t\tthis.parser = parser;\n\n\t}\n\n\tloadBufferView( index ) {\n\n\t\tconst json = this.parser.json;\n\t\tconst bufferView = json.bufferViews[ index ];\n\n\t\tif ( bufferView.extensions && bufferView.extensions[ this.name ] ) {\n\n\t\t\tconst extensionDef = bufferView.extensions[ this.name ];\n\n\t\t\tconst buffer = this.parser.getDependency( 'buffer', extensionDef.buffer );\n\t\t\tconst decoder = this.parser.options.meshoptDecoder;\n\n\t\t\tif ( ! decoder || ! decoder.supported ) {\n\n\t\t\t\tif ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Assumes that the extension is optional and that fallback buffer data is present\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn Promise.all( [ buffer, decoder.ready ] ).then( function ( res ) {\n\n\t\t\t\tconst byteOffset = extensionDef.byteOffset || 0;\n\t\t\t\tconst byteLength = extensionDef.byteLength || 0;\n\n\t\t\t\tconst count = extensionDef.count;\n\t\t\t\tconst stride = extensionDef.byteStride;\n\n\t\t\t\tconst result = new ArrayBuffer( count * stride );\n\t\t\t\tconst source = new Uint8Array( res[ 0 ], byteOffset, byteLength );\n\n\t\t\t\tdecoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter );\n\t\t\t\treturn result;\n\n\t\t\t} );\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t}\n\n}\n\n/* BINARY EXTENSION */\nconst BINARY_EXTENSION_HEADER_MAGIC = 'glTF';\nconst BINARY_EXTENSION_HEADER_LENGTH = 12;\nconst BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 };\n\nclass GLTFBinaryExtension {\n\n\tconstructor( data ) {\n\n\t\tthis.name = EXTENSIONS.KHR_BINARY_GLTF;\n\t\tthis.content = null;\n\t\tthis.body = null;\n\n\t\tconst headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH );\n\n\t\tthis.header = {\n\t\t\tmagic: LoaderUtils.decodeText( new Uint8Array( data.slice( 0, 4 ) ) ),\n\t\t\tversion: headerView.getUint32( 4, true ),\n\t\t\tlength: headerView.getUint32( 8, true )\n\t\t};\n\n\t\tif ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' );\n\n\t\t} else if ( this.header.version < 2.0 ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Legacy binary file detected.' );\n\n\t\t}\n\n\t\tconst chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH;\n\t\tconst chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH );\n\t\tlet chunkIndex = 0;\n\n\t\twhile ( chunkIndex < chunkContentsLength ) {\n\n\t\t\tconst chunkLength = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tconst chunkType = chunkView.getUint32( chunkIndex, true );\n\t\t\tchunkIndex += 4;\n\n\t\t\tif ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) {\n\n\t\t\t\tconst contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength );\n\t\t\t\tthis.content = LoaderUtils.decodeText( contentArray );\n\n\t\t\t} else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) {\n\n\t\t\t\tconst byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex;\n\t\t\t\tthis.body = data.slice( byteOffset, byteOffset + chunkLength );\n\n\t\t\t}\n\n\t\t\t// Clients must ignore chunks with unknown types.\n\n\t\t\tchunkIndex += chunkLength;\n\n\t\t}\n\n\t\tif ( this.content === null ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: JSON content not found.' );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * DRACO Mesh Compression Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression\n */\nclass GLTFDracoMeshCompressionExtension {\n\n\tconstructor( json, dracoLoader ) {\n\n\t\tif ( ! dracoLoader ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' );\n\n\t\t}\n\n\t\tthis.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION;\n\t\tthis.json = json;\n\t\tthis.dracoLoader = dracoLoader;\n\t\tthis.dracoLoader.preload();\n\n\t}\n\n\tdecodePrimitive( primitive, parser ) {\n\n\t\tconst json = this.json;\n\t\tconst dracoLoader = this.dracoLoader;\n\t\tconst bufferViewIndex = primitive.extensions[ this.name ].bufferView;\n\t\tconst gltfAttributeMap = primitive.extensions[ this.name ].attributes;\n\t\tconst threeAttributeMap = {};\n\t\tconst attributeNormalizedMap = {};\n\t\tconst attributeTypeMap = {};\n\n\t\tfor ( const attributeName in gltfAttributeMap ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tthreeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ];\n\n\t\t}\n\n\t\tfor ( const attributeName in primitive.attributes ) {\n\n\t\t\tconst threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase();\n\n\t\t\tif ( gltfAttributeMap[ attributeName ] !== undefined ) {\n\n\t\t\t\tconst accessorDef = json.accessors[ primitive.attributes[ attributeName ] ];\n\t\t\t\tconst componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t\tattributeTypeMap[ threeAttributeName ] = componentType;\n\t\t\t\tattributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) {\n\n\t\t\treturn new Promise( function ( resolve ) {\n\n\t\t\t\tdracoLoader.decodeDracoFile( bufferView, function ( geometry ) {\n\n\t\t\t\t\tfor ( const attributeName in geometry.attributes ) {\n\n\t\t\t\t\t\tconst attribute = geometry.attributes[ attributeName ];\n\t\t\t\t\t\tconst normalized = attributeNormalizedMap[ attributeName ];\n\n\t\t\t\t\t\tif ( normalized !== undefined ) attribute.normalized = normalized;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve( geometry );\n\n\t\t\t\t}, threeAttributeMap, attributeTypeMap );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n}\n\n/**\n * Texture Transform Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform\n */\nclass GLTFTextureTransformExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;\n\n\t}\n\n\textendTexture( texture, transform ) {\n\n\t\tif ( transform.texCoord !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Custom UV sets in \"' + this.name + '\" extension not yet supported.' );\n\n\t\t}\n\n\t\tif ( transform.offset === undefined && transform.rotation === undefined && transform.scale === undefined ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21819.\n\t\t\treturn texture;\n\n\t\t}\n\n\t\ttexture = texture.clone();\n\n\t\tif ( transform.offset !== undefined ) {\n\n\t\t\ttexture.offset.fromArray( transform.offset );\n\n\t\t}\n\n\t\tif ( transform.rotation !== undefined ) {\n\n\t\t\ttexture.rotation = transform.rotation;\n\n\t\t}\n\n\t\tif ( transform.scale !== undefined ) {\n\n\t\t\ttexture.repeat.fromArray( transform.scale );\n\n\t\t}\n\n\t\ttexture.needsUpdate = true;\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Specular-Glossiness Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness\n */\n\n/**\n * A sub class of StandardMaterial with some of the functionality\n * changed via the `onBeforeCompile` callback\n * @pailhead\n */\nclass GLTFMeshStandardSGMaterial extends MeshStandardMaterial {\n\n\tconstructor( params ) {\n\n\t\tsuper();\n\n\t\tthis.isGLTFSpecularGlossinessMaterial = true;\n\n\t\t//various chunks that need replacing\n\t\tconst specularMapParsFragmentChunk = [\n\t\t\t'#ifdef USE_SPECULARMAP',\n\t\t\t'\tuniform sampler2D specularMap;',\n\t\t\t'#endif'\n\t\t].join( '\\n' );\n\n\t\tconst glossinessMapParsFragmentChunk = [\n\t\t\t'#ifdef USE_GLOSSINESSMAP',\n\t\t\t'\tuniform sampler2D glossinessMap;',\n\t\t\t'#endif'\n\t\t].join( '\\n' );\n\n\t\tconst specularMapFragmentChunk = [\n\t\t\t'vec3 specularFactor = specular;',\n\t\t\t'#ifdef USE_SPECULARMAP',\n\t\t\t'\tvec4 texelSpecular = texture2D( specularMap, vUv );',\n\t\t\t'\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture',\n\t\t\t'\tspecularFactor *= texelSpecular.rgb;',\n\t\t\t'#endif'\n\t\t].join( '\\n' );\n\n\t\tconst glossinessMapFragmentChunk = [\n\t\t\t'float glossinessFactor = glossiness;',\n\t\t\t'#ifdef USE_GLOSSINESSMAP',\n\t\t\t'\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );',\n\t\t\t'\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture',\n\t\t\t'\tglossinessFactor *= texelGlossiness.a;',\n\t\t\t'#endif'\n\t\t].join( '\\n' );\n\n\t\tconst lightPhysicalFragmentChunk = [\n\t\t\t'PhysicalMaterial material;',\n\t\t\t'material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );',\n\t\t\t'vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );',\n\t\t\t'float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );',\n\t\t\t'material.roughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.',\n\t\t\t'material.roughness += geometryRoughness;',\n\t\t\t'material.roughness = min( material.roughness, 1.0 );',\n\t\t\t'material.specularColor = specularFactor;',\n\t\t].join( '\\n' );\n\n\t\tconst uniforms = {\n\t\t\tspecular: { value: new Color().setHex( 0xffffff ) },\n\t\t\tglossiness: { value: 1 },\n\t\t\tspecularMap: { value: null },\n\t\t\tglossinessMap: { value: null }\n\t\t};\n\n\t\tthis._extraUniforms = uniforms;\n\n\t\tthis.onBeforeCompile = function ( shader ) {\n\n\t\t\tfor ( const uniformName in uniforms ) {\n\n\t\t\t\tshader.uniforms[ uniformName ] = uniforms[ uniformName ];\n\n\t\t\t}\n\n\t\t\tshader.fragmentShader = shader.fragmentShader\n\t\t\t\t.replace( 'uniform float roughness;', 'uniform vec3 specular;' )\n\t\t\t\t.replace( 'uniform float metalness;', 'uniform float glossiness;' )\n\t\t\t\t.replace( '#include ', specularMapParsFragmentChunk )\n\t\t\t\t.replace( '#include ', glossinessMapParsFragmentChunk )\n\t\t\t\t.replace( '#include ', specularMapFragmentChunk )\n\t\t\t\t.replace( '#include ', glossinessMapFragmentChunk )\n\t\t\t\t.replace( '#include ', lightPhysicalFragmentChunk );\n\n\t\t};\n\n\t\tObject.defineProperties( this, {\n\n\t\t\tspecular: {\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn uniforms.specular.value;\n\n\t\t\t\t},\n\t\t\t\tset: function ( v ) {\n\n\t\t\t\t\tuniforms.specular.value = v;\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tspecularMap: {\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn uniforms.specularMap.value;\n\n\t\t\t\t},\n\t\t\t\tset: function ( v ) {\n\n\t\t\t\t\tuniforms.specularMap.value = v;\n\n\t\t\t\t\tif ( v ) {\n\n\t\t\t\t\t\tthis.defines.USE_SPECULARMAP = ''; // USE_UV is set by the renderer for specular maps\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_SPECULARMAP;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tglossiness: {\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn uniforms.glossiness.value;\n\n\t\t\t\t},\n\t\t\t\tset: function ( v ) {\n\n\t\t\t\t\tuniforms.glossiness.value = v;\n\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tglossinessMap: {\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn uniforms.glossinessMap.value;\n\n\t\t\t\t},\n\t\t\t\tset: function ( v ) {\n\n\t\t\t\t\tuniforms.glossinessMap.value = v;\n\n\t\t\t\t\tif ( v ) {\n\n\t\t\t\t\t\tthis.defines.USE_GLOSSINESSMAP = '';\n\t\t\t\t\t\tthis.defines.USE_UV = '';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_GLOSSINESSMAP;\n\t\t\t\t\t\tdelete this.defines.USE_UV;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t} );\n\n\t\tdelete this.metalness;\n\t\tdelete this.roughness;\n\t\tdelete this.metalnessMap;\n\t\tdelete this.roughnessMap;\n\n\t\tthis.setValues( params );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.specularMap = source.specularMap;\n\t\tthis.specular.copy( source.specular );\n\t\tthis.glossinessMap = source.glossinessMap;\n\t\tthis.glossiness = source.glossiness;\n\t\tdelete this.metalness;\n\t\tdelete this.roughness;\n\t\tdelete this.metalnessMap;\n\t\tdelete this.roughnessMap;\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass GLTFMaterialsPbrSpecularGlossinessExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS;\n\n\t\tthis.specularGlossinessParams = [\n\t\t\t'color',\n\t\t\t'map',\n\t\t\t'lightMap',\n\t\t\t'lightMapIntensity',\n\t\t\t'aoMap',\n\t\t\t'aoMapIntensity',\n\t\t\t'emissive',\n\t\t\t'emissiveIntensity',\n\t\t\t'emissiveMap',\n\t\t\t'bumpMap',\n\t\t\t'bumpScale',\n\t\t\t'normalMap',\n\t\t\t'normalMapType',\n\t\t\t'displacementMap',\n\t\t\t'displacementScale',\n\t\t\t'displacementBias',\n\t\t\t'specularMap',\n\t\t\t'specular',\n\t\t\t'glossinessMap',\n\t\t\t'glossiness',\n\t\t\t'alphaMap',\n\t\t\t'envMap',\n\t\t\t'envMapIntensity'\n\t\t];\n\n\t}\n\n\tgetMaterialType() {\n\n\t\treturn GLTFMeshStandardSGMaterial;\n\n\t}\n\n\textendParams( materialParams, materialDef, parser ) {\n\n\t\tconst pbrSpecularGlossiness = materialDef.extensions[ this.name ];\n\n\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\tmaterialParams.opacity = 1.0;\n\n\t\tconst pending = [];\n\n\t\tif ( Array.isArray( pbrSpecularGlossiness.diffuseFactor ) ) {\n\n\t\t\tconst array = pbrSpecularGlossiness.diffuseFactor;\n\n\t\t\tmaterialParams.color.fromArray( array );\n\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t}\n\n\t\tif ( pbrSpecularGlossiness.diffuseTexture !== undefined ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'map', pbrSpecularGlossiness.diffuseTexture, sRGBEncoding ) );\n\n\t\t}\n\n\t\tmaterialParams.emissive = new Color( 0.0, 0.0, 0.0 );\n\t\tmaterialParams.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0;\n\t\tmaterialParams.specular = new Color( 1.0, 1.0, 1.0 );\n\n\t\tif ( Array.isArray( pbrSpecularGlossiness.specularFactor ) ) {\n\n\t\t\tmaterialParams.specular.fromArray( pbrSpecularGlossiness.specularFactor );\n\n\t\t}\n\n\t\tif ( pbrSpecularGlossiness.specularGlossinessTexture !== undefined ) {\n\n\t\t\tconst specGlossMapDef = pbrSpecularGlossiness.specularGlossinessTexture;\n\t\t\tpending.push( parser.assignTexture( materialParams, 'glossinessMap', specGlossMapDef ) );\n\t\t\tpending.push( parser.assignTexture( materialParams, 'specularMap', specGlossMapDef, sRGBEncoding ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n\tcreateMaterial( materialParams ) {\n\n\t\tconst material = new GLTFMeshStandardSGMaterial( materialParams );\n\t\tmaterial.fog = true;\n\n\t\tmaterial.color = materialParams.color;\n\n\t\tmaterial.map = materialParams.map === undefined ? null : materialParams.map;\n\n\t\tmaterial.lightMap = null;\n\t\tmaterial.lightMapIntensity = 1.0;\n\n\t\tmaterial.aoMap = materialParams.aoMap === undefined ? null : materialParams.aoMap;\n\t\tmaterial.aoMapIntensity = 1.0;\n\n\t\tmaterial.emissive = materialParams.emissive;\n\t\tmaterial.emissiveIntensity = 1.0;\n\t\tmaterial.emissiveMap = materialParams.emissiveMap === undefined ? null : materialParams.emissiveMap;\n\n\t\tmaterial.bumpMap = materialParams.bumpMap === undefined ? null : materialParams.bumpMap;\n\t\tmaterial.bumpScale = 1;\n\n\t\tmaterial.normalMap = materialParams.normalMap === undefined ? null : materialParams.normalMap;\n\t\tmaterial.normalMapType = TangentSpaceNormalMap;\n\n\t\tif ( materialParams.normalScale ) material.normalScale = materialParams.normalScale;\n\n\t\tmaterial.displacementMap = null;\n\t\tmaterial.displacementScale = 1;\n\t\tmaterial.displacementBias = 0;\n\n\t\tmaterial.specularMap = materialParams.specularMap === undefined ? null : materialParams.specularMap;\n\t\tmaterial.specular = materialParams.specular;\n\n\t\tmaterial.glossinessMap = materialParams.glossinessMap === undefined ? null : materialParams.glossinessMap;\n\t\tmaterial.glossiness = materialParams.glossiness;\n\n\t\tmaterial.alphaMap = null;\n\n\t\tmaterial.envMap = materialParams.envMap === undefined ? null : materialParams.envMap;\n\t\tmaterial.envMapIntensity = 1.0;\n\n\t\treturn material;\n\n\t}\n\n}\n\n/**\n * Mesh Quantization Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization\n */\nclass GLTFMeshQuantizationExtension {\n\n\tconstructor() {\n\n\t\tthis.name = EXTENSIONS.KHR_MESH_QUANTIZATION;\n\n\t}\n\n}\n\n/*********************************/\n/********** INTERPOLATION ********/\n/*********************************/\n\n// Spline Interpolation\n// Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation\nclass GLTFCubicSplineInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// Copies a sample value to the result buffer. See description of glTF\n\t\t// CUBICSPLINE values layout in interpolate_() function below.\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tvalueSize = this.valueSize,\n\t\t\toffset = index * valueSize * 3 + valueSize;\n\n\t\tfor ( let i = 0; i !== valueSize; i ++ ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nGLTFCubicSplineInterpolant.prototype.beforeStart_ = GLTFCubicSplineInterpolant.prototype.copySampleValue_;\n\nGLTFCubicSplineInterpolant.prototype.afterEnd_ = GLTFCubicSplineInterpolant.prototype.copySampleValue_;\n\nGLTFCubicSplineInterpolant.prototype.interpolate_ = function ( i1, t0, t, t1 ) {\n\n\tconst result = this.resultBuffer;\n\tconst values = this.sampleValues;\n\tconst stride = this.valueSize;\n\n\tconst stride2 = stride * 2;\n\tconst stride3 = stride * 3;\n\n\tconst td = t1 - t0;\n\n\tconst p = ( t - t0 ) / td;\n\tconst pp = p * p;\n\tconst ppp = pp * p;\n\n\tconst offset1 = i1 * stride3;\n\tconst offset0 = offset1 - stride3;\n\n\tconst s2 = - 2 * ppp + 3 * pp;\n\tconst s3 = ppp - pp;\n\tconst s0 = 1 - s2;\n\tconst s1 = s3 - pp + p;\n\n\t// Layout of keyframe output values for CUBICSPLINE animations:\n\t// [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ]\n\tfor ( let i = 0; i !== stride; i ++ ) {\n\n\t\tconst p0 = values[ offset0 + i + stride ]; // splineVertex_k\n\t\tconst m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k)\n\t\tconst p1 = values[ offset1 + i + stride ]; // splineVertex_k+1\n\t\tconst m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k)\n\n\t\tresult[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1;\n\n\t}\n\n\treturn result;\n\n};\n\nconst _q = new Quaternion();\n\nclass GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant {\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = super.interpolate_( i1, t0, t, t1 );\n\n\t\t_q.fromArray( result ).normalize().toArray( result );\n\n\t\treturn result;\n\n\t}\n\n}\n\n\n/*********************************/\n/********** INTERNALS ************/\n/*********************************/\n\n/* CONSTANTS */\n\nconst WEBGL_CONSTANTS$1 = {\n\tFLOAT: 5126,\n\t//FLOAT_MAT2: 35674,\n\tFLOAT_MAT3: 35675,\n\tFLOAT_MAT4: 35676,\n\tFLOAT_VEC2: 35664,\n\tFLOAT_VEC3: 35665,\n\tFLOAT_VEC4: 35666,\n\tLINEAR: 9729,\n\tREPEAT: 10497,\n\tSAMPLER_2D: 35678,\n\tPOINTS: 0,\n\tLINES: 1,\n\tLINE_LOOP: 2,\n\tLINE_STRIP: 3,\n\tTRIANGLES: 4,\n\tTRIANGLE_STRIP: 5,\n\tTRIANGLE_FAN: 6,\n\tUNSIGNED_BYTE: 5121,\n\tUNSIGNED_SHORT: 5123\n};\n\nconst WEBGL_COMPONENT_TYPES = {\n\t5120: Int8Array,\n\t5121: Uint8Array,\n\t5122: Int16Array,\n\t5123: Uint16Array,\n\t5125: Uint32Array,\n\t5126: Float32Array\n};\n\nconst WEBGL_FILTERS = {\n\t9728: NearestFilter,\n\t9729: LinearFilter,\n\t9984: NearestMipmapNearestFilter,\n\t9985: LinearMipmapNearestFilter,\n\t9986: NearestMipmapLinearFilter,\n\t9987: LinearMipmapLinearFilter\n};\n\nconst WEBGL_WRAPPINGS = {\n\t33071: ClampToEdgeWrapping,\n\t33648: MirroredRepeatWrapping,\n\t10497: RepeatWrapping\n};\n\nconst WEBGL_TYPE_SIZES = {\n\t'SCALAR': 1,\n\t'VEC2': 2,\n\t'VEC3': 3,\n\t'VEC4': 4,\n\t'MAT2': 4,\n\t'MAT3': 9,\n\t'MAT4': 16\n};\n\nconst ATTRIBUTES = {\n\tPOSITION: 'position',\n\tNORMAL: 'normal',\n\tTANGENT: 'tangent',\n\tTEXCOORD_0: 'uv',\n\tTEXCOORD_1: 'uv2',\n\tCOLOR_0: 'color',\n\tWEIGHTS_0: 'skinWeight',\n\tJOINTS_0: 'skinIndex',\n};\n\nconst PATH_PROPERTIES$1 = {\n\tscale: 'scale',\n\ttranslation: 'position',\n\trotation: 'quaternion',\n\tweights: 'morphTargetInfluences'\n};\n\nconst INTERPOLATION = {\n\tCUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each\n\t\t // keyframe track will be initialized with a default interpolation type, then modified.\n\tLINEAR: InterpolateLinear,\n\tSTEP: InterpolateDiscrete\n};\n\nconst ALPHA_MODES = {\n\tOPAQUE: 'OPAQUE',\n\tMASK: 'MASK',\n\tBLEND: 'BLEND'\n};\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material\n */\nfunction createDefaultMaterial( cache ) {\n\n\tif ( cache[ 'DefaultMaterial' ] === undefined ) {\n\n\t\tcache[ 'DefaultMaterial' ] = new MeshStandardMaterial( {\n\t\t\tcolor: 0xFFFFFF,\n\t\t\temissive: 0x000000,\n\t\t\tmetalness: 1,\n\t\t\troughness: 1,\n\t\t\ttransparent: false,\n\t\t\tdepthTest: true,\n\t\t\tside: FrontSide\n\t\t} );\n\n\t}\n\n\treturn cache[ 'DefaultMaterial' ];\n\n}\n\nfunction addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) {\n\n\t// Add unknown glTF extensions to an object's userData.\n\n\tfor ( const name in objectDef.extensions ) {\n\n\t\tif ( knownExtensions[ name ] === undefined ) {\n\n\t\t\tobject.userData.gltfExtensions = object.userData.gltfExtensions || {};\n\t\t\tobject.userData.gltfExtensions[ name ] = objectDef.extensions[ name ];\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * @param {Object3D|Material|BufferGeometry} object\n * @param {GLTF.definition} gltfDef\n */\nfunction assignExtrasToUserData( object, gltfDef ) {\n\n\tif ( gltfDef.extras !== undefined ) {\n\n\t\tif ( typeof gltfDef.extras === 'object' ) {\n\n\t\t\tObject.assign( object.userData, gltfDef.extras );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets\n *\n * @param {BufferGeometry} geometry\n * @param {Array} targets\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addMorphTargets( geometry, targets, parser ) {\n\n\tlet hasMorphPosition = false;\n\tlet hasMorphNormal = false;\n\tlet hasMorphColor = false;\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( target.POSITION !== undefined ) hasMorphPosition = true;\n\t\tif ( target.NORMAL !== undefined ) hasMorphNormal = true;\n\t\tif ( target.COLOR_0 !== undefined ) hasMorphColor = true;\n\n\t\tif ( hasMorphPosition && hasMorphNormal && hasMorphColor ) break;\n\n\t}\n\n\tif ( ! hasMorphPosition && ! hasMorphNormal && ! hasMorphColor ) return Promise.resolve( geometry );\n\n\tconst pendingPositionAccessors = [];\n\tconst pendingNormalAccessors = [];\n\tconst pendingColorAccessors = [];\n\n\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\tconst target = targets[ i ];\n\n\t\tif ( hasMorphPosition ) {\n\n\t\t\tconst pendingAccessor = target.POSITION !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.POSITION )\n\t\t\t\t: geometry.attributes.position;\n\n\t\t\tpendingPositionAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphNormal ) {\n\n\t\t\tconst pendingAccessor = target.NORMAL !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.NORMAL )\n\t\t\t\t: geometry.attributes.normal;\n\n\t\t\tpendingNormalAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t\tif ( hasMorphColor ) {\n\n\t\t\tconst pendingAccessor = target.COLOR_0 !== undefined\n\t\t\t\t? parser.getDependency( 'accessor', target.COLOR_0 )\n\t\t\t\t: geometry.attributes.color;\n\n\t\t\tpendingColorAccessors.push( pendingAccessor );\n\n\t\t}\n\n\t}\n\n\treturn Promise.all( [\n\t\tPromise.all( pendingPositionAccessors ),\n\t\tPromise.all( pendingNormalAccessors ),\n\t\tPromise.all( pendingColorAccessors )\n\t] ).then( function ( accessors ) {\n\n\t\tconst morphPositions = accessors[ 0 ];\n\t\tconst morphNormals = accessors[ 1 ];\n\t\tconst morphColors = accessors[ 2 ];\n\n\t\tif ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions;\n\t\tif ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals;\n\t\tif ( hasMorphColor ) geometry.morphAttributes.color = morphColors;\n\t\tgeometry.morphTargetsRelative = true;\n\n\t\treturn geometry;\n\n\t} );\n\n}\n\n/**\n * @param {Mesh} mesh\n * @param {GLTF.Mesh} meshDef\n */\nfunction updateMorphTargets( mesh, meshDef ) {\n\n\tmesh.updateMorphTargets();\n\n\tif ( meshDef.weights !== undefined ) {\n\n\t\tfor ( let i = 0, il = meshDef.weights.length; i < il; i ++ ) {\n\n\t\t\tmesh.morphTargetInfluences[ i ] = meshDef.weights[ i ];\n\n\t\t}\n\n\t}\n\n\t// .extras has user-defined data, so check that .extras.targetNames is an array.\n\tif ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) {\n\n\t\tconst targetNames = meshDef.extras.targetNames;\n\n\t\tif ( mesh.morphTargetInfluences.length === targetNames.length ) {\n\n\t\t\tmesh.morphTargetDictionary = {};\n\n\t\t\tfor ( let i = 0, il = targetNames.length; i < il; i ++ ) {\n\n\t\t\t\tmesh.morphTargetDictionary[ targetNames[ i ] ] = i;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' );\n\n\t\t}\n\n\t}\n\n}\n\nfunction createPrimitiveKey( primitiveDef ) {\n\n\tconst dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ];\n\tlet geometryKey;\n\n\tif ( dracoExtension ) {\n\n\t\tgeometryKey = 'draco:' + dracoExtension.bufferView\n\t\t\t\t+ ':' + dracoExtension.indices\n\t\t\t\t+ ':' + createAttributesKey( dracoExtension.attributes );\n\n\t} else {\n\n\t\tgeometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode;\n\n\t}\n\n\treturn geometryKey;\n\n}\n\nfunction createAttributesKey( attributes ) {\n\n\tlet attributesKey = '';\n\n\tconst keys = Object.keys( attributes ).sort();\n\n\tfor ( let i = 0, il = keys.length; i < il; i ++ ) {\n\n\t\tattributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';';\n\n\t}\n\n\treturn attributesKey;\n\n}\n\nfunction getNormalizedComponentScale$1( constructor ) {\n\n\t// Reference:\n\t// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data\n\n\tswitch ( constructor ) {\n\n\t\tcase Int8Array:\n\t\t\treturn 1 / 127;\n\n\t\tcase Uint8Array:\n\t\t\treturn 1 / 255;\n\n\t\tcase Int16Array:\n\t\t\treturn 1 / 32767;\n\n\t\tcase Uint16Array:\n\t\t\treturn 1 / 65535;\n\n\t\tdefault:\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Unsupported normalized accessor component type.' );\n\n\t}\n\n}\n\nfunction getImageURIMimeType( uri ) {\n\n\tif ( uri.search( /\\.jpe?g($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/jpeg/ ) === 0 ) return 'image/jpeg';\n\tif ( uri.search( /\\.webp($|\\?)/i ) > 0 || uri.search( /^data\\:image\\/webp/ ) === 0 ) return 'image/webp';\n\n\treturn 'image/png';\n\n}\n\n/* GLTF PARSER */\n\nclass GLTFParser {\n\n\tconstructor( json = {}, options = {} ) {\n\n\t\tthis.json = json;\n\t\tthis.extensions = {};\n\t\tthis.plugins = {};\n\t\tthis.options = options;\n\n\t\t// loader object cache\n\t\tthis.cache = new GLTFRegistry();\n\n\t\t// associations between Three.js objects and glTF elements\n\t\tthis.associations = new Map();\n\n\t\t// BufferGeometry caching\n\t\tthis.primitiveCache = {};\n\n\t\t// Object3D instance caches\n\t\tthis.meshCache = { refs: {}, uses: {} };\n\t\tthis.cameraCache = { refs: {}, uses: {} };\n\t\tthis.lightCache = { refs: {}, uses: {} };\n\n\t\tthis.sourceCache = {};\n\t\tthis.textureCache = {};\n\n\t\t// Track node names, to ensure no duplicates\n\t\tthis.nodeNamesUsed = {};\n\n\t\t// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the\n\t\t// expensive work of uploading a texture to the GPU off the main thread.\n\t\tif ( typeof createImageBitmap !== 'undefined' && /^((?!chrome|android).)*safari/i.test( navigator.userAgent ) === false ) {\n\n\t\t\tthis.textureLoader = new ImageBitmapLoader( this.options.manager );\n\n\t\t} else {\n\n\t\t\tthis.textureLoader = new TextureLoader( this.options.manager );\n\n\t\t}\n\n\t\tthis.textureLoader.setCrossOrigin( this.options.crossOrigin );\n\t\tthis.textureLoader.setRequestHeader( this.options.requestHeader );\n\n\t\tthis.fileLoader = new FileLoader( this.options.manager );\n\t\tthis.fileLoader.setResponseType( 'arraybuffer' );\n\n\t\tif ( this.options.crossOrigin === 'use-credentials' ) {\n\n\t\t\tthis.fileLoader.setWithCredentials( true );\n\n\t\t}\n\n\t}\n\n\tsetExtensions( extensions ) {\n\n\t\tthis.extensions = extensions;\n\n\t}\n\n\tsetPlugins( plugins ) {\n\n\t\tthis.plugins = plugins;\n\n\t}\n\n\tparse( onLoad, onError ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\t// Clear the loader cache\n\t\tthis.cache.removeAll();\n\n\t\t// Mark the special nodes/meshes in json for efficient parse\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\treturn ext._markDefs && ext._markDefs();\n\n\t\t} );\n\n\t\tPromise.all( this._invokeAll( function ( ext ) {\n\n\t\t\treturn ext.beforeRoot && ext.beforeRoot();\n\n\t\t} ) ).then( function () {\n\n\t\t\treturn Promise.all( [\n\n\t\t\t\tparser.getDependencies( 'scene' ),\n\t\t\t\tparser.getDependencies( 'animation' ),\n\t\t\t\tparser.getDependencies( 'camera' ),\n\n\t\t\t] );\n\n\t\t} ).then( function ( dependencies ) {\n\n\t\t\tconst result = {\n\t\t\t\tscene: dependencies[ 0 ][ json.scene || 0 ],\n\t\t\t\tscenes: dependencies[ 0 ],\n\t\t\t\tanimations: dependencies[ 1 ],\n\t\t\t\tcameras: dependencies[ 2 ],\n\t\t\t\tasset: json.asset,\n\t\t\t\tparser: parser,\n\t\t\t\tuserData: {}\n\t\t\t};\n\n\t\t\taddUnknownExtensionsToUserData( extensions, result, json );\n\n\t\t\tassignExtrasToUserData( result, json );\n\n\t\t\tPromise.all( parser._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.afterRoot && ext.afterRoot( result );\n\n\t\t\t} ) ).then( function () {\n\n\t\t\t\tonLoad( result );\n\n\t\t\t} );\n\n\t\t} ).catch( onError );\n\n\t}\n\n\t/**\n\t * Marks the special nodes/meshes in json for efficient parse.\n\t */\n\t_markDefs() {\n\n\t\tconst nodeDefs = this.json.nodes || [];\n\t\tconst skinDefs = this.json.skins || [];\n\t\tconst meshDefs = this.json.meshes || [];\n\n\t\t// Nothing in the node definition indicates whether it is a Bone or an\n\t\t// Object3D. Use the skins' joint references to mark bones.\n\t\tfor ( let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) {\n\n\t\t\tconst joints = skinDefs[ skinIndex ].joints;\n\n\t\t\tfor ( let i = 0, il = joints.length; i < il; i ++ ) {\n\n\t\t\t\tnodeDefs[ joints[ i ] ].isBone = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Iterate over all nodes, marking references to shared resources,\n\t\t// as well as skeleton joints.\n\t\tfor ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) {\n\n\t\t\tconst nodeDef = nodeDefs[ nodeIndex ];\n\n\t\t\tif ( nodeDef.mesh !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.meshCache, nodeDef.mesh );\n\n\t\t\t\t// Nothing in the mesh definition indicates whether it is\n\t\t\t\t// a SkinnedMesh or Mesh. Use the node's mesh reference\n\t\t\t\t// to mark SkinnedMesh if node has skin.\n\t\t\t\tif ( nodeDef.skin !== undefined ) {\n\n\t\t\t\t\tmeshDefs[ nodeDef.mesh ].isSkinnedMesh = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\t\tthis._addNodeRef( this.cameraCache, nodeDef.camera );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Counts references to shared node / Object3D resources. These resources\n\t * can be reused, or \"instantiated\", at multiple nodes in the scene\n\t * hierarchy. Mesh, Camera, and Light instances are instantiated and must\n\t * be marked. Non-scenegraph resources (like Materials, Geometries, and\n\t * Textures) can be reused directly and are not marked here.\n\t *\n\t * Example: CesiumMilkTruck sample model reuses \"Wheel\" meshes.\n\t */\n\t_addNodeRef( cache, index ) {\n\n\t\tif ( index === undefined ) return;\n\n\t\tif ( cache.refs[ index ] === undefined ) {\n\n\t\t\tcache.refs[ index ] = cache.uses[ index ] = 0;\n\n\t\t}\n\n\t\tcache.refs[ index ] ++;\n\n\t}\n\n\t/** Returns a reference to a shared resource, cloning it if necessary. */\n\t_getNodeRef( cache, index, object ) {\n\n\t\tif ( cache.refs[ index ] <= 1 ) return object;\n\n\t\tconst ref = object.clone();\n\n\t\t// Propagates mappings to the cloned object, prevents mappings on the\n\t\t// original object from being lost.\n\t\tconst updateMappings = ( original, clone ) => {\n\n\t\t\tconst mappings = this.associations.get( original );\n\t\t\tif ( mappings != null ) {\n\n\t\t\t\tthis.associations.set( clone, mappings );\n\n\t\t\t}\n\n\t\t\tfor ( const [ i, child ] of original.children.entries() ) {\n\n\t\t\t\tupdateMappings( child, clone.children[ i ] );\n\n\t\t\t}\n\n\t\t};\n\n\t\tupdateMappings( object, ref );\n\n\t\tref.name += '_instance_' + ( cache.uses[ index ] ++ );\n\n\t\treturn ref;\n\n\t}\n\n\t_invokeOne( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.push( this );\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) return result;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t_invokeAll( func ) {\n\n\t\tconst extensions = Object.values( this.plugins );\n\t\textensions.unshift( this );\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0; i < extensions.length; i ++ ) {\n\n\t\t\tconst result = func( extensions[ i ] );\n\n\t\t\tif ( result ) pending.push( result );\n\n\t\t}\n\n\t\treturn pending;\n\n\t}\n\n\t/**\n\t * Requests the specified dependency asynchronously, with caching.\n\t * @param {string} type\n\t * @param {number} index\n\t * @return {Promise}\n\t */\n\tgetDependency( type, index ) {\n\n\t\tconst cacheKey = type + ':' + index;\n\t\tlet dependency = this.cache.get( cacheKey );\n\n\t\tif ( ! dependency ) {\n\n\t\t\tswitch ( type ) {\n\n\t\t\t\tcase 'scene':\n\t\t\t\t\tdependency = this.loadScene( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'node':\n\t\t\t\t\tdependency = this.loadNode( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mesh':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMesh && ext.loadMesh( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'accessor':\n\t\t\t\t\tdependency = this.loadAccessor( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bufferView':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadBufferView && ext.loadBufferView( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'buffer':\n\t\t\t\t\tdependency = this.loadBuffer( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'material':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadMaterial && ext.loadMaterial( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'texture':\n\t\t\t\t\tdependency = this._invokeOne( function ( ext ) {\n\n\t\t\t\t\t\treturn ext.loadTexture && ext.loadTexture( index );\n\n\t\t\t\t\t} );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'skin':\n\t\t\t\t\tdependency = this.loadSkin( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'animation':\n\t\t\t\t\tdependency = this.loadAnimation( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'camera':\n\t\t\t\t\tdependency = this.loadCamera( index );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error( 'Unknown type: ' + type );\n\n\t\t\t}\n\n\t\t\tthis.cache.add( cacheKey, dependency );\n\n\t\t}\n\n\t\treturn dependency;\n\n\t}\n\n\t/**\n\t * Requests all dependencies of the specified type asynchronously, with caching.\n\t * @param {string} type\n\t * @return {Promise>}\n\t */\n\tgetDependencies( type ) {\n\n\t\tlet dependencies = this.cache.get( type );\n\n\t\tif ( ! dependencies ) {\n\n\t\t\tconst parser = this;\n\t\t\tconst defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || [];\n\n\t\t\tdependencies = Promise.all( defs.map( function ( def, index ) {\n\n\t\t\t\treturn parser.getDependency( type, index );\n\n\t\t\t} ) );\n\n\t\t\tthis.cache.add( type, dependencies );\n\n\t\t}\n\n\t\treturn dependencies;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferIndex\n\t * @return {Promise}\n\t */\n\tloadBuffer( bufferIndex ) {\n\n\t\tconst bufferDef = this.json.buffers[ bufferIndex ];\n\t\tconst loader = this.fileLoader;\n\n\t\tif ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' );\n\n\t\t}\n\n\t\t// If present, GLB container is required to be the first buffer.\n\t\tif ( bufferDef.uri === undefined && bufferIndex === 0 ) {\n\n\t\t\treturn Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body );\n\n\t\t}\n\n\t\tconst options = this.options;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tloader.load( LoaderUtils.resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () {\n\n\t\t\t\treject( new Error( 'THREE.GLTFLoader: Failed to load buffer \"' + bufferDef.uri + '\".' ) );\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views\n\t * @param {number} bufferViewIndex\n\t * @return {Promise}\n\t */\n\tloadBufferView( bufferViewIndex ) {\n\n\t\tconst bufferViewDef = this.json.bufferViews[ bufferViewIndex ];\n\n\t\treturn this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) {\n\n\t\t\tconst byteLength = bufferViewDef.byteLength || 0;\n\t\t\tconst byteOffset = bufferViewDef.byteOffset || 0;\n\t\t\treturn buffer.slice( byteOffset, byteOffset + byteLength );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors\n\t * @param {number} accessorIndex\n\t * @return {Promise}\n\t */\n\tloadAccessor( accessorIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst accessorDef = this.json.accessors[ accessorIndex ];\n\n\t\tif ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) {\n\n\t\t\t// Ignore empty accessors, which may be used to declare runtime\n\t\t\t// information about attributes coming from another source (e.g. Draco\n\t\t\t// compression extension).\n\t\t\treturn Promise.resolve( null );\n\n\t\t}\n\n\t\tconst pendingBufferViews = [];\n\n\t\tif ( accessorDef.bufferView !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) );\n\n\t\t} else {\n\n\t\t\tpendingBufferViews.push( null );\n\n\t\t}\n\n\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) );\n\t\t\tpendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) );\n\n\t\t}\n\n\t\treturn Promise.all( pendingBufferViews ).then( function ( bufferViews ) {\n\n\t\t\tconst bufferView = bufferViews[ 0 ];\n\n\t\t\tconst itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ];\n\t\t\tconst TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ];\n\n\t\t\t// For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12.\n\t\t\tconst elementBytes = TypedArray.BYTES_PER_ELEMENT;\n\t\t\tconst itemBytes = elementBytes * itemSize;\n\t\t\tconst byteOffset = accessorDef.byteOffset || 0;\n\t\t\tconst byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined;\n\t\t\tconst normalized = accessorDef.normalized === true;\n\t\t\tlet array, bufferAttribute;\n\n\t\t\t// The buffer is not interleaved if the stride is the item size in bytes.\n\t\t\tif ( byteStride && byteStride !== itemBytes ) {\n\n\t\t\t\t// Each \"slice\" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer\n\t\t\t\t// This makes sure that IBA.count reflects accessor.count properly\n\t\t\t\tconst ibSlice = Math.floor( byteOffset / byteStride );\n\t\t\t\tconst ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count;\n\t\t\t\tlet ib = parser.cache.get( ibCacheKey );\n\n\t\t\t\tif ( ! ib ) {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes );\n\n\t\t\t\t\t// Integer parameters to IB/IBA are in array elements, not bytes.\n\t\t\t\t\tib = new InterleavedBuffer( array, byteStride / elementBytes );\n\n\t\t\t\t\tparser.cache.add( ibCacheKey, ib );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized );\n\n\t\t\t} else {\n\n\t\t\t\tif ( bufferView === null ) {\n\n\t\t\t\t\tarray = new TypedArray( accessorDef.count * itemSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tarray = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize );\n\n\t\t\t\t}\n\n\t\t\t\tbufferAttribute = new BufferAttribute( array, itemSize, normalized );\n\n\t\t\t}\n\n\t\t\t// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors\n\t\t\tif ( accessorDef.sparse !== undefined ) {\n\n\t\t\t\tconst itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR;\n\t\t\t\tconst TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ];\n\n\t\t\t\tconst byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0;\n\t\t\t\tconst byteOffsetValues = accessorDef.sparse.values.byteOffset || 0;\n\n\t\t\t\tconst sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices );\n\t\t\t\tconst sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize );\n\n\t\t\t\tif ( bufferView !== null ) {\n\n\t\t\t\t\t// Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes.\n\t\t\t\t\tbufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, il = sparseIndices.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst index = sparseIndices[ i ];\n\n\t\t\t\t\tbufferAttribute.setX( index, sparseValues[ i * itemSize ] );\n\t\t\t\t\tif ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] );\n\t\t\t\t\tif ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] );\n\t\t\t\t\tif ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] );\n\t\t\t\t\tif ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn bufferAttribute;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures\n\t * @param {number} textureIndex\n\t * @return {Promise}\n\t */\n\tloadTexture( textureIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceIndex = textureDef.source;\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tlet loader = this.textureLoader;\n\n\t\tif ( sourceDef.uri ) {\n\n\t\t\tconst handler = options.manager.getHandler( sourceDef.uri );\n\t\t\tif ( handler !== null ) loader = handler;\n\n\t\t}\n\n\t\treturn this.loadTextureImage( textureIndex, sourceIndex, loader );\n\n\t}\n\n\tloadTextureImage( textureIndex, sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\n\t\tconst textureDef = json.textures[ textureIndex ];\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst cacheKey = ( sourceDef.uri || sourceDef.bufferView ) + ':' + textureDef.sampler;\n\n\t\tif ( this.textureCache[ cacheKey ] ) {\n\n\t\t\t// See https://github.com/mrdoob/three.js/issues/21559.\n\t\t\treturn this.textureCache[ cacheKey ];\n\n\t\t}\n\n\t\tconst promise = this.loadImageSource( sourceIndex, loader ).then( function ( texture ) {\n\n\t\t\ttexture.flipY = false;\n\n\t\t\tif ( textureDef.name ) texture.name = textureDef.name;\n\n\t\t\tconst samplers = json.samplers || {};\n\t\t\tconst sampler = samplers[ textureDef.sampler ] || {};\n\n\t\t\ttexture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || LinearFilter;\n\t\t\ttexture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || LinearMipmapLinearFilter;\n\t\t\ttexture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || RepeatWrapping;\n\t\t\ttexture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || RepeatWrapping;\n\n\t\t\tparser.associations.set( texture, { textures: textureIndex } );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function () {\n\n\t\t\treturn null;\n\n\t\t} );\n\n\t\tthis.textureCache[ cacheKey ] = promise;\n\n\t\treturn promise;\n\n\t}\n\n\tloadImageSource( sourceIndex, loader ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\n\t\tif ( this.sourceCache[ sourceIndex ] !== undefined ) {\n\n\t\t\treturn this.sourceCache[ sourceIndex ].then( ( texture ) => texture.clone() );\n\n\t\t}\n\n\t\tconst sourceDef = json.images[ sourceIndex ];\n\n\t\tconst URL = self.URL || self.webkitURL;\n\n\t\tlet sourceURI = sourceDef.uri || '';\n\t\tlet isObjectURL = false;\n\n\t\tif ( sourceDef.bufferView !== undefined ) {\n\n\t\t\t// Load binary image data from bufferView, if provided.\n\n\t\t\tsourceURI = parser.getDependency( 'bufferView', sourceDef.bufferView ).then( function ( bufferView ) {\n\n\t\t\t\tisObjectURL = true;\n\t\t\t\tconst blob = new Blob( [ bufferView ], { type: sourceDef.mimeType } );\n\t\t\t\tsourceURI = URL.createObjectURL( blob );\n\t\t\t\treturn sourceURI;\n\n\t\t\t} );\n\n\t\t} else if ( sourceDef.uri === undefined ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFLoader: Image ' + sourceIndex + ' is missing URI and bufferView' );\n\n\t\t}\n\n\t\tconst promise = Promise.resolve( sourceURI ).then( function ( sourceURI ) {\n\n\t\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\t\tlet onLoad = resolve;\n\n\t\t\t\tif ( loader.isImageBitmapLoader === true ) {\n\n\t\t\t\t\tonLoad = function ( imageBitmap ) {\n\n\t\t\t\t\t\tconst texture = new Texture$1( imageBitmap );\n\t\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\t\tresolve( texture );\n\n\t\t\t\t\t};\n\n\t\t\t\t}\n\n\t\t\t\tloader.load( LoaderUtils.resolveURL( sourceURI, options.path ), onLoad, undefined, reject );\n\n\t\t\t} );\n\n\t\t} ).then( function ( texture ) {\n\n\t\t\t// Clean up resources and configure Texture.\n\n\t\t\tif ( isObjectURL === true ) {\n\n\t\t\t\tURL.revokeObjectURL( sourceURI );\n\n\t\t\t}\n\n\t\t\ttexture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType( sourceDef.uri );\n\n\t\t\treturn texture;\n\n\t\t} ).catch( function ( error ) {\n\n\t\t\tconsole.error( 'THREE.GLTFLoader: Couldn\\'t load texture', sourceURI );\n\t\t\tthrow error;\n\n\t\t} );\n\n\t\tthis.sourceCache[ sourceIndex ] = promise;\n\t\treturn promise;\n\n\t}\n\n\t/**\n\t * Asynchronously assigns a texture to the given material parameters.\n\t * @param {Object} materialParams\n\t * @param {string} mapName\n\t * @param {Object} mapDef\n\t * @return {Promise}\n\t */\n\tassignTexture( materialParams, mapName, mapDef, encoding ) {\n\n\t\tconst parser = this;\n\n\t\treturn this.getDependency( 'texture', mapDef.index ).then( function ( texture ) {\n\n\t\t\t// Materials sample aoMap from UV set 1 and other maps from UV set 0 - this can't be configured\n\t\t\t// However, we will copy UV set 0 to UV set 1 on demand for aoMap\n\t\t\tif ( mapDef.texCoord !== undefined && mapDef.texCoord != 0 && ! ( mapName === 'aoMap' && mapDef.texCoord == 1 ) ) {\n\n\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Custom UV set ' + mapDef.texCoord + ' for texture ' + mapName + ' not yet supported.' );\n\n\t\t\t}\n\n\t\t\tif ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) {\n\n\t\t\t\tconst transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined;\n\n\t\t\t\tif ( transform ) {\n\n\t\t\t\t\tconst gltfReference = parser.associations.get( texture );\n\t\t\t\t\ttexture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform );\n\t\t\t\t\tparser.associations.set( texture, gltfReference );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( encoding !== undefined ) {\n\n\t\t\t\ttexture.encoding = encoding;\n\n\t\t\t}\n\n\t\t\tmaterialParams[ mapName ] = texture;\n\n\t\t\treturn texture;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Assigns final material to a Mesh, Line, or Points instance. The instance\n\t * already has a material (generated from the glTF material options alone)\n\t * but reuse of the same glTF material may require multiple threejs materials\n\t * to accommodate different primitive types, defines, etc. New materials will\n\t * be created if necessary, and reused from a cache.\n\t * @param {Object3D} mesh Mesh, Line, or Points instance.\n\t */\n\tassignFinalMaterial( mesh ) {\n\n\t\tconst geometry = mesh.geometry;\n\t\tlet material = mesh.material;\n\n\t\tconst useDerivativeTangents = geometry.attributes.tangent === undefined;\n\t\tconst useVertexColors = geometry.attributes.color !== undefined;\n\t\tconst useFlatShading = geometry.attributes.normal === undefined;\n\n\t\tif ( mesh.isPoints ) {\n\n\t\t\tconst cacheKey = 'PointsMaterial:' + material.uuid;\n\n\t\t\tlet pointsMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! pointsMaterial ) {\n\n\t\t\t\tpointsMaterial = new PointsMaterial();\n\t\t\t\tMaterial$1.prototype.copy.call( pointsMaterial, material );\n\t\t\t\tpointsMaterial.color.copy( material.color );\n\t\t\t\tpointsMaterial.map = material.map;\n\t\t\t\tpointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px\n\n\t\t\t\tthis.cache.add( cacheKey, pointsMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = pointsMaterial;\n\n\t\t} else if ( mesh.isLine ) {\n\n\t\t\tconst cacheKey = 'LineBasicMaterial:' + material.uuid;\n\n\t\t\tlet lineMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! lineMaterial ) {\n\n\t\t\t\tlineMaterial = new LineBasicMaterial();\n\t\t\t\tMaterial$1.prototype.copy.call( lineMaterial, material );\n\t\t\t\tlineMaterial.color.copy( material.color );\n\n\t\t\t\tthis.cache.add( cacheKey, lineMaterial );\n\n\t\t\t}\n\n\t\t\tmaterial = lineMaterial;\n\n\t\t}\n\n\t\t// Clone the material if it will be modified\n\t\tif ( useDerivativeTangents || useVertexColors || useFlatShading ) {\n\n\t\t\tlet cacheKey = 'ClonedMaterial:' + material.uuid + ':';\n\n\t\t\tif ( material.isGLTFSpecularGlossinessMaterial ) cacheKey += 'specular-glossiness:';\n\t\t\tif ( useDerivativeTangents ) cacheKey += 'derivative-tangents:';\n\t\t\tif ( useVertexColors ) cacheKey += 'vertex-colors:';\n\t\t\tif ( useFlatShading ) cacheKey += 'flat-shading:';\n\n\t\t\tlet cachedMaterial = this.cache.get( cacheKey );\n\n\t\t\tif ( ! cachedMaterial ) {\n\n\t\t\t\tcachedMaterial = material.clone();\n\n\t\t\t\tif ( useVertexColors ) cachedMaterial.vertexColors = true;\n\t\t\t\tif ( useFlatShading ) cachedMaterial.flatShading = true;\n\n\t\t\t\tif ( useDerivativeTangents ) {\n\n\t\t\t\t\t// https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995\n\t\t\t\t\tif ( cachedMaterial.normalScale ) cachedMaterial.normalScale.y *= - 1;\n\t\t\t\t\tif ( cachedMaterial.clearcoatNormalScale ) cachedMaterial.clearcoatNormalScale.y *= - 1;\n\n\t\t\t\t}\n\n\t\t\t\tthis.cache.add( cacheKey, cachedMaterial );\n\n\t\t\t\tthis.associations.set( cachedMaterial, this.associations.get( material ) );\n\n\t\t\t}\n\n\t\t\tmaterial = cachedMaterial;\n\n\t\t}\n\n\t\t// workarounds for mesh and geometry\n\n\t\tif ( material.aoMap && geometry.attributes.uv2 === undefined && geometry.attributes.uv !== undefined ) {\n\n\t\t\tgeometry.setAttribute( 'uv2', geometry.attributes.uv );\n\n\t\t}\n\n\t\tmesh.material = material;\n\n\t}\n\n\tgetMaterialType( /* materialIndex */ ) {\n\n\t\treturn MeshStandardMaterial;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials\n\t * @param {number} materialIndex\n\t * @return {Promise}\n\t */\n\tloadMaterial( materialIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst materialDef = json.materials[ materialIndex ];\n\n\t\tlet materialType;\n\t\tconst materialParams = {};\n\t\tconst materialExtensions = materialDef.extensions || {};\n\n\t\tconst pending = [];\n\n\t\tif ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] ) {\n\n\t\t\tconst sgExtension = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ];\n\t\t\tmaterialType = sgExtension.getMaterialType();\n\t\t\tpending.push( sgExtension.extendParams( materialParams, materialDef, parser ) );\n\n\t\t} else if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) {\n\n\t\t\tconst kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ];\n\t\t\tmaterialType = kmuExtension.getMaterialType();\n\t\t\tpending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) );\n\n\t\t} else {\n\n\t\t\t// Specification:\n\t\t\t// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material\n\n\t\t\tconst metallicRoughness = materialDef.pbrMetallicRoughness || {};\n\n\t\t\tmaterialParams.color = new Color( 1.0, 1.0, 1.0 );\n\t\t\tmaterialParams.opacity = 1.0;\n\n\t\t\tif ( Array.isArray( metallicRoughness.baseColorFactor ) ) {\n\n\t\t\t\tconst array = metallicRoughness.baseColorFactor;\n\n\t\t\t\tmaterialParams.color.fromArray( array );\n\t\t\t\tmaterialParams.opacity = array[ 3 ];\n\n\t\t\t}\n\n\t\t\tif ( metallicRoughness.baseColorTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, sRGBEncoding ) );\n\n\t\t\t}\n\n\t\t\tmaterialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0;\n\t\t\tmaterialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0;\n\n\t\t\tif ( metallicRoughness.metallicRoughnessTexture !== undefined ) {\n\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\t\t\t\tpending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) );\n\n\t\t\t}\n\n\t\t\tmaterialType = this._invokeOne( function ( ext ) {\n\n\t\t\t\treturn ext.getMaterialType && ext.getMaterialType( materialIndex );\n\n\t\t\t} );\n\n\t\t\tpending.push( Promise.all( this._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams );\n\n\t\t\t} ) ) );\n\n\t\t}\n\n\t\tif ( materialDef.doubleSided === true ) {\n\n\t\t\tmaterialParams.side = DoubleSide;\n\n\t\t}\n\n\t\tconst alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE;\n\n\t\tif ( alphaMode === ALPHA_MODES.BLEND ) {\n\n\t\t\tmaterialParams.transparent = true;\n\n\t\t\t// See: https://github.com/mrdoob/three.js/issues/17706\n\t\t\tmaterialParams.depthWrite = false;\n\n\t\t} else {\n\n\t\t\tmaterialParams.transparent = false;\n\n\t\t\tif ( alphaMode === ALPHA_MODES.MASK ) {\n\n\t\t\t\tmaterialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.normalTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) );\n\n\t\t\tmaterialParams.normalScale = new Vector2( 1, 1 );\n\n\t\t\tif ( materialDef.normalTexture.scale !== undefined ) {\n\n\t\t\t\tconst scale = materialDef.normalTexture.scale;\n\n\t\t\t\tmaterialParams.normalScale.set( scale, scale );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.occlusionTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) );\n\n\t\t\tif ( materialDef.occlusionTexture.strength !== undefined ) {\n\n\t\t\t\tmaterialParams.aoMapIntensity = materialDef.occlusionTexture.strength;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( materialDef.emissiveFactor !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tmaterialParams.emissive = new Color().fromArray( materialDef.emissiveFactor );\n\n\t\t}\n\n\t\tif ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) {\n\n\t\t\tpending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, sRGBEncoding ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function () {\n\n\t\t\tlet material;\n\n\t\t\tif ( materialType === GLTFMeshStandardSGMaterial ) {\n\n\t\t\t\tmaterial = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ].createMaterial( materialParams );\n\n\t\t\t} else {\n\n\t\t\t\tmaterial = new materialType( materialParams );\n\n\t\t\t}\n\n\t\t\tif ( materialDef.name ) material.name = materialDef.name;\n\n\t\t\tassignExtrasToUserData( material, materialDef );\n\n\t\t\tparser.associations.set( material, { materials: materialIndex } );\n\n\t\t\tif ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef );\n\n\t\t\treturn material;\n\n\t\t} );\n\n\t}\n\n\t/** When Object3D instances are targeted by animation, they need unique names. */\n\tcreateUniqueName( originalName ) {\n\n\t\tconst sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' );\n\n\t\tlet name = sanitizedName;\n\n\t\tfor ( let i = 1; this.nodeNamesUsed[ name ]; ++ i ) {\n\n\t\t\tname = sanitizedName + '_' + i;\n\n\t\t}\n\n\t\tthis.nodeNamesUsed[ name ] = true;\n\n\t\treturn name;\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry\n\t *\n\t * Creates BufferGeometries from primitives.\n\t *\n\t * @param {Array} primitives\n\t * @return {Promise>}\n\t */\n\tloadGeometries( primitives ) {\n\n\t\tconst parser = this;\n\t\tconst extensions = this.extensions;\n\t\tconst cache = this.primitiveCache;\n\n\t\tfunction createDracoPrimitive( primitive ) {\n\n\t\t\treturn extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]\n\t\t\t\t.decodePrimitive( primitive, parser )\n\t\t\t\t.then( function ( geometry ) {\n\n\t\t\t\t\treturn addPrimitiveAttributes( geometry, primitive, parser );\n\n\t\t\t\t} );\n\n\t\t}\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst primitive = primitives[ i ];\n\t\t\tconst cacheKey = createPrimitiveKey( primitive );\n\n\t\t\t// See if we've already created this geometry\n\t\t\tconst cached = cache[ cacheKey ];\n\n\t\t\tif ( cached ) {\n\n\t\t\t\t// Use the cached geometry if it exists\n\t\t\t\tpending.push( cached.promise );\n\n\t\t\t} else {\n\n\t\t\t\tlet geometryPromise;\n\n\t\t\t\tif ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) {\n\n\t\t\t\t\t// Use DRACO geometry if available\n\t\t\t\t\tgeometryPromise = createDracoPrimitive( primitive );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise create a new geometry\n\t\t\t\t\tgeometryPromise = addPrimitiveAttributes( new BufferGeometry(), primitive, parser );\n\n\t\t\t\t}\n\n\t\t\t\t// Cache this geometry\n\t\t\t\tcache[ cacheKey ] = { primitive: primitive, promise: geometryPromise };\n\n\t\t\t\tpending.push( geometryPromise );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes\n\t * @param {number} meshIndex\n\t * @return {Promise}\n\t */\n\tloadMesh( meshIndex ) {\n\n\t\tconst parser = this;\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\n\t\tconst meshDef = json.meshes[ meshIndex ];\n\t\tconst primitives = meshDef.primitives;\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = primitives.length; i < il; i ++ ) {\n\n\t\t\tconst material = primitives[ i ].material === undefined\n\t\t\t\t? createDefaultMaterial( this.cache )\n\t\t\t\t: this.getDependency( 'material', primitives[ i ].material );\n\n\t\t\tpending.push( material );\n\n\t\t}\n\n\t\tpending.push( parser.loadGeometries( primitives ) );\n\n\t\treturn Promise.all( pending ).then( function ( results ) {\n\n\t\t\tconst materials = results.slice( 0, results.length - 1 );\n\t\t\tconst geometries = results[ results.length - 1 ];\n\n\t\t\tconst meshes = [];\n\n\t\t\tfor ( let i = 0, il = geometries.length; i < il; i ++ ) {\n\n\t\t\t\tconst geometry = geometries[ i ];\n\t\t\t\tconst primitive = primitives[ i ];\n\n\t\t\t\t// 1. create Mesh\n\n\t\t\t\tlet mesh;\n\n\t\t\t\tconst material = materials[ i ];\n\n\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS$1.TRIANGLES ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS$1.TRIANGLE_STRIP ||\n\t\t\t\t\t\tprimitive.mode === WEBGL_CONSTANTS$1.TRIANGLE_FAN ||\n\t\t\t\t\t\tprimitive.mode === undefined ) {\n\n\t\t\t\t\t// .isSkinnedMesh isn't in glTF spec. See ._markDefs()\n\t\t\t\t\tmesh = meshDef.isSkinnedMesh === true\n\t\t\t\t\t\t? new SkinnedMesh( geometry, material )\n\t\t\t\t\t\t: new Mesh( geometry, material );\n\n\t\t\t\t\tif ( mesh.isSkinnedMesh === true && ! mesh.geometry.attributes.skinWeight.normalized ) {\n\n\t\t\t\t\t\t// we normalize floating point skin weight array to fix malformed assets (see #15319)\n\t\t\t\t\t\t// it's important to skip this for non-float32 data since normalizeSkinWeights assumes non-normalized inputs\n\t\t\t\t\t\tmesh.normalizeSkinWeights();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( primitive.mode === WEBGL_CONSTANTS$1.TRIANGLE_STRIP ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleStripDrawMode );\n\n\t\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS$1.TRIANGLE_FAN ) {\n\n\t\t\t\t\t\tmesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleFanDrawMode );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS$1.LINES ) {\n\n\t\t\t\t\tmesh = new LineSegments( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS$1.LINE_STRIP ) {\n\n\t\t\t\t\tmesh = new Line( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS$1.LINE_LOOP ) {\n\n\t\t\t\t\tmesh = new LineLoop( geometry, material );\n\n\t\t\t\t} else if ( primitive.mode === WEBGL_CONSTANTS$1.POINTS ) {\n\n\t\t\t\t\tmesh = new Points( geometry, material );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode );\n\n\t\t\t\t}\n\n\t\t\t\tif ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) {\n\n\t\t\t\t\tupdateMorphTargets( mesh, meshDef );\n\n\t\t\t\t}\n\n\t\t\t\tmesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) );\n\n\t\t\t\tassignExtrasToUserData( mesh, meshDef );\n\n\t\t\t\tif ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive );\n\n\t\t\t\tparser.assignFinalMaterial( mesh );\n\n\t\t\t\tmeshes.push( mesh );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tparser.associations.set( meshes[ i ], {\n\t\t\t\t\tmeshes: meshIndex,\n\t\t\t\t\tprimitives: i\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tif ( meshes.length === 1 ) {\n\n\t\t\t\treturn meshes[ 0 ];\n\n\t\t\t}\n\n\t\t\tconst group = new Group();\n\n\t\t\tparser.associations.set( group, { meshes: meshIndex } );\n\n\t\t\tfor ( let i = 0, il = meshes.length; i < il; i ++ ) {\n\n\t\t\t\tgroup.add( meshes[ i ] );\n\n\t\t\t}\n\n\t\t\treturn group;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras\n\t * @param {number} cameraIndex\n\t * @return {Promise}\n\t */\n\tloadCamera( cameraIndex ) {\n\n\t\tlet camera;\n\t\tconst cameraDef = this.json.cameras[ cameraIndex ];\n\t\tconst params = cameraDef[ cameraDef.type ];\n\n\t\tif ( ! params ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing camera parameters.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( cameraDef.type === 'perspective' ) {\n\n\t\t\tcamera = new PerspectiveCamera( MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 );\n\n\t\t} else if ( cameraDef.type === 'orthographic' ) {\n\n\t\t\tcamera = new OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar );\n\n\t\t}\n\n\t\tif ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name );\n\n\t\tassignExtrasToUserData( camera, cameraDef );\n\n\t\treturn Promise.resolve( camera );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins\n\t * @param {number} skinIndex\n\t * @return {Promise}\n\t */\n\tloadSkin( skinIndex ) {\n\n\t\tconst skinDef = this.json.skins[ skinIndex ];\n\n\t\tconst skinEntry = { joints: skinDef.joints };\n\n\t\tif ( skinDef.inverseBindMatrices === undefined ) {\n\n\t\t\treturn Promise.resolve( skinEntry );\n\n\t\t}\n\n\t\treturn this.getDependency( 'accessor', skinDef.inverseBindMatrices ).then( function ( accessor ) {\n\n\t\t\tskinEntry.inverseBindMatrices = accessor;\n\n\t\t\treturn skinEntry;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations\n\t * @param {number} animationIndex\n\t * @return {Promise}\n\t */\n\tloadAnimation( animationIndex ) {\n\n\t\tconst json = this.json;\n\n\t\tconst animationDef = json.animations[ animationIndex ];\n\n\t\tconst pendingNodes = [];\n\t\tconst pendingInputAccessors = [];\n\t\tconst pendingOutputAccessors = [];\n\t\tconst pendingSamplers = [];\n\t\tconst pendingTargets = [];\n\n\t\tfor ( let i = 0, il = animationDef.channels.length; i < il; i ++ ) {\n\n\t\t\tconst channel = animationDef.channels[ i ];\n\t\t\tconst sampler = animationDef.samplers[ channel.sampler ];\n\t\t\tconst target = channel.target;\n\t\t\tconst name = target.node !== undefined ? target.node : target.id; // NOTE: target.id is deprecated.\n\t\t\tconst input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input;\n\t\t\tconst output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output;\n\n\t\t\tpendingNodes.push( this.getDependency( 'node', name ) );\n\t\t\tpendingInputAccessors.push( this.getDependency( 'accessor', input ) );\n\t\t\tpendingOutputAccessors.push( this.getDependency( 'accessor', output ) );\n\t\t\tpendingSamplers.push( sampler );\n\t\t\tpendingTargets.push( target );\n\n\t\t}\n\n\t\treturn Promise.all( [\n\n\t\t\tPromise.all( pendingNodes ),\n\t\t\tPromise.all( pendingInputAccessors ),\n\t\t\tPromise.all( pendingOutputAccessors ),\n\t\t\tPromise.all( pendingSamplers ),\n\t\t\tPromise.all( pendingTargets )\n\n\t\t] ).then( function ( dependencies ) {\n\n\t\t\tconst nodes = dependencies[ 0 ];\n\t\t\tconst inputAccessors = dependencies[ 1 ];\n\t\t\tconst outputAccessors = dependencies[ 2 ];\n\t\t\tconst samplers = dependencies[ 3 ];\n\t\t\tconst targets = dependencies[ 4 ];\n\n\t\t\tconst tracks = [];\n\n\t\t\tfor ( let i = 0, il = nodes.length; i < il; i ++ ) {\n\n\t\t\t\tconst node = nodes[ i ];\n\t\t\t\tconst inputAccessor = inputAccessors[ i ];\n\t\t\t\tconst outputAccessor = outputAccessors[ i ];\n\t\t\t\tconst sampler = samplers[ i ];\n\t\t\t\tconst target = targets[ i ];\n\n\t\t\t\tif ( node === undefined ) continue;\n\n\t\t\t\tnode.updateMatrix();\n\t\t\t\tnode.matrixAutoUpdate = true;\n\n\t\t\t\tlet TypedKeyframeTrack;\n\n\t\t\t\tswitch ( PATH_PROPERTIES$1[ target.path ] ) {\n\n\t\t\t\t\tcase PATH_PROPERTIES$1.weights:\n\n\t\t\t\t\t\tTypedKeyframeTrack = NumberKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PATH_PROPERTIES$1.rotation:\n\n\t\t\t\t\t\tTypedKeyframeTrack = QuaternionKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase PATH_PROPERTIES$1.position:\n\t\t\t\t\tcase PATH_PROPERTIES$1.scale:\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tTypedKeyframeTrack = VectorKeyframeTrack;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tconst targetName = node.name ? node.name : node.uuid;\n\n\t\t\t\tconst interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : InterpolateLinear;\n\n\t\t\t\tconst targetNames = [];\n\n\t\t\t\tif ( PATH_PROPERTIES$1[ target.path ] === PATH_PROPERTIES$1.weights ) {\n\n\t\t\t\t\tnode.traverse( function ( object ) {\n\n\t\t\t\t\t\tif ( object.morphTargetInfluences ) {\n\n\t\t\t\t\t\t\ttargetNames.push( object.name ? object.name : object.uuid );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttargetNames.push( targetName );\n\n\t\t\t\t}\n\n\t\t\t\tlet outputArray = outputAccessor.array;\n\n\t\t\t\tif ( outputAccessor.normalized ) {\n\n\t\t\t\t\tconst scale = getNormalizedComponentScale$1( outputArray.constructor );\n\t\t\t\t\tconst scaled = new Float32Array( outputArray.length );\n\n\t\t\t\t\tfor ( let j = 0, jl = outputArray.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tscaled[ j ] = outputArray[ j ] * scale;\n\n\t\t\t\t\t}\n\n\t\t\t\t\toutputArray = scaled;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0, jl = targetNames.length; j < jl; j ++ ) {\n\n\t\t\t\t\tconst track = new TypedKeyframeTrack(\n\t\t\t\t\t\ttargetNames[ j ] + '.' + PATH_PROPERTIES$1[ target.path ],\n\t\t\t\t\t\tinputAccessor.array,\n\t\t\t\t\t\toutputArray,\n\t\t\t\t\t\tinterpolation\n\t\t\t\t\t);\n\n\t\t\t\t\t// Override interpolation with custom factory method.\n\t\t\t\t\tif ( sampler.interpolation === 'CUBICSPLINE' ) {\n\n\t\t\t\t\t\ttrack.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) {\n\n\t\t\t\t\t\t\t// A CUBICSPLINE keyframe in glTF has three output values for each input value,\n\t\t\t\t\t\t\t// representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize()\n\t\t\t\t\t\t\t// must be divided by three to get the interpolant's sampleSize argument.\n\n\t\t\t\t\t\t\tconst interpolantType = ( this instanceof QuaternionKeyframeTrack ) ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant;\n\n\t\t\t\t\t\t\treturn new interpolantType( this.times, this.values, this.getValueSize() / 3, result );\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants.\n\t\t\t\t\t\ttrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( track );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst name = animationDef.name ? animationDef.name : 'animation_' + animationIndex;\n\n\t\t\treturn new AnimationClip( name, undefined, tracks );\n\n\t\t} );\n\n\t}\n\n\tcreateNodeMesh( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst parser = this;\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\tif ( nodeDef.mesh === undefined ) return null;\n\n\t\treturn parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) {\n\n\t\t\tconst node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh );\n\n\t\t\t// if weights are provided on the node, override weights on the mesh.\n\t\t\tif ( nodeDef.weights !== undefined ) {\n\n\t\t\t\tnode.traverse( function ( o ) {\n\n\t\t\t\t\tif ( ! o.isMesh ) return;\n\n\t\t\t\t\tfor ( let i = 0, il = nodeDef.weights.length; i < il; i ++ ) {\n\n\t\t\t\t\t\to.morphTargetInfluences[ i ] = nodeDef.weights[ i ];\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy\n\t * @param {number} nodeIndex\n\t * @return {Promise}\n\t */\n\tloadNode( nodeIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst parser = this;\n\n\t\tconst nodeDef = json.nodes[ nodeIndex ];\n\n\t\t// reserve node's name before its dependencies, so the root has the intended name.\n\t\tconst nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : '';\n\n\t\treturn ( function () {\n\n\t\t\tconst pending = [];\n\n\t\t\tconst meshPromise = parser._invokeOne( function ( ext ) {\n\n\t\t\t\treturn ext.createNodeMesh && ext.createNodeMesh( nodeIndex );\n\n\t\t\t} );\n\n\t\t\tif ( meshPromise ) {\n\n\t\t\t\tpending.push( meshPromise );\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.camera !== undefined ) {\n\n\t\t\t\tpending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) {\n\n\t\t\t\t\treturn parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera );\n\n\t\t\t\t} ) );\n\n\t\t\t}\n\n\t\t\tparser._invokeAll( function ( ext ) {\n\n\t\t\t\treturn ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex );\n\n\t\t\t} ).forEach( function ( promise ) {\n\n\t\t\t\tpending.push( promise );\n\n\t\t\t} );\n\n\t\t\treturn Promise.all( pending );\n\n\t\t}() ).then( function ( objects ) {\n\n\t\t\tlet node;\n\n\t\t\t// .isBone isn't in glTF spec. See ._markDefs\n\t\t\tif ( nodeDef.isBone === true ) {\n\n\t\t\t\tnode = new Bone();\n\n\t\t\t} else if ( objects.length > 1 ) {\n\n\t\t\t\tnode = new Group();\n\n\t\t\t} else if ( objects.length === 1 ) {\n\n\t\t\t\tnode = objects[ 0 ];\n\n\t\t\t} else {\n\n\t\t\t\tnode = new Object3D();\n\n\t\t\t}\n\n\t\t\tif ( node !== objects[ 0 ] ) {\n\n\t\t\t\tfor ( let i = 0, il = objects.length; i < il; i ++ ) {\n\n\t\t\t\t\tnode.add( objects[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( nodeDef.name ) {\n\n\t\t\t\tnode.userData.name = nodeDef.name;\n\t\t\t\tnode.name = nodeName;\n\n\t\t\t}\n\n\t\t\tassignExtrasToUserData( node, nodeDef );\n\n\t\t\tif ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef );\n\n\t\t\tif ( nodeDef.matrix !== undefined ) {\n\n\t\t\t\tconst matrix = new Matrix4();\n\t\t\t\tmatrix.fromArray( nodeDef.matrix );\n\t\t\t\tnode.applyMatrix4( matrix );\n\n\t\t\t} else {\n\n\t\t\t\tif ( nodeDef.translation !== undefined ) {\n\n\t\t\t\t\tnode.position.fromArray( nodeDef.translation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.rotation !== undefined ) {\n\n\t\t\t\t\tnode.quaternion.fromArray( nodeDef.rotation );\n\n\t\t\t\t}\n\n\t\t\t\tif ( nodeDef.scale !== undefined ) {\n\n\t\t\t\t\tnode.scale.fromArray( nodeDef.scale );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ! parser.associations.has( node ) ) {\n\n\t\t\t\tparser.associations.set( node, {} );\n\n\t\t\t}\n\n\t\t\tparser.associations.get( node ).nodes = nodeIndex;\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes\n\t * @param {number} sceneIndex\n\t * @return {Promise}\n\t */\n\tloadScene( sceneIndex ) {\n\n\t\tconst json = this.json;\n\t\tconst extensions = this.extensions;\n\t\tconst sceneDef = this.json.scenes[ sceneIndex ];\n\t\tconst parser = this;\n\n\t\t// Loader returns Group, not Scene.\n\t\t// See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172\n\t\tconst scene = new Group();\n\t\tif ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name );\n\n\t\tassignExtrasToUserData( scene, sceneDef );\n\n\t\tif ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef );\n\n\t\tconst nodeIds = sceneDef.nodes || [];\n\n\t\tconst pending = [];\n\n\t\tfor ( let i = 0, il = nodeIds.length; i < il; i ++ ) {\n\n\t\t\tpending.push( buildNodeHierarchy( nodeIds[ i ], scene, json, parser ) );\n\n\t\t}\n\n\t\treturn Promise.all( pending ).then( function () {\n\n\t\t\t// Removes dangling associations, associations that reference a node that\n\t\t\t// didn't make it into the scene.\n\t\t\tconst reduceAssociations = ( node ) => {\n\n\t\t\t\tconst reducedAssociations = new Map();\n\n\t\t\t\tfor ( const [ key, value ] of parser.associations ) {\n\n\t\t\t\t\tif ( key instanceof Material$1 || key instanceof Texture$1 ) {\n\n\t\t\t\t\t\treducedAssociations.set( key, value );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tnode.traverse( ( node ) => {\n\n\t\t\t\t\tconst mappings = parser.associations.get( node );\n\n\t\t\t\t\tif ( mappings != null ) {\n\n\t\t\t\t\t\treducedAssociations.set( node, mappings );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\treturn reducedAssociations;\n\n\t\t\t};\n\n\t\t\tparser.associations = reduceAssociations( scene );\n\n\t\t\treturn scene;\n\n\t\t} );\n\n\t}\n\n}\n\nfunction buildNodeHierarchy( nodeId, parentObject, json, parser ) {\n\n\tconst nodeDef = json.nodes[ nodeId ];\n\n\treturn parser.getDependency( 'node', nodeId ).then( function ( node ) {\n\n\t\tif ( nodeDef.skin === undefined ) return node;\n\n\t\t// build skeleton here as well\n\n\t\tlet skinEntry;\n\n\t\treturn parser.getDependency( 'skin', nodeDef.skin ).then( function ( skin ) {\n\n\t\t\tskinEntry = skin;\n\n\t\t\tconst pendingJoints = [];\n\n\t\t\tfor ( let i = 0, il = skinEntry.joints.length; i < il; i ++ ) {\n\n\t\t\t\tpendingJoints.push( parser.getDependency( 'node', skinEntry.joints[ i ] ) );\n\n\t\t\t}\n\n\t\t\treturn Promise.all( pendingJoints );\n\n\t\t} ).then( function ( jointNodes ) {\n\n\t\t\tnode.traverse( function ( mesh ) {\n\n\t\t\t\tif ( ! mesh.isMesh ) return;\n\n\t\t\t\tconst bones = [];\n\t\t\t\tconst boneInverses = [];\n\n\t\t\t\tfor ( let j = 0, jl = jointNodes.length; j < jl; j ++ ) {\n\n\t\t\t\t\tconst jointNode = jointNodes[ j ];\n\n\t\t\t\t\tif ( jointNode ) {\n\n\t\t\t\t\t\tbones.push( jointNode );\n\n\t\t\t\t\t\tconst mat = new Matrix4();\n\n\t\t\t\t\t\tif ( skinEntry.inverseBindMatrices !== undefined ) {\n\n\t\t\t\t\t\t\tmat.fromArray( skinEntry.inverseBindMatrices.array, j * 16 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tboneInverses.push( mat );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Joint \"%s\" could not be found.', skinEntry.joints[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tmesh.bind( new Skeleton( bones, boneInverses ), mesh.matrixWorld );\n\n\t\t\t} );\n\n\t\t\treturn node;\n\n\t\t} );\n\n\t} ).then( function ( node ) {\n\n\t\t// build node hierachy\n\n\t\tparentObject.add( node );\n\n\t\tconst pending = [];\n\n\t\tif ( nodeDef.children ) {\n\n\t\t\tconst children = nodeDef.children;\n\n\t\t\tfor ( let i = 0, il = children.length; i < il; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\t\t\t\tpending.push( buildNodeHierarchy( child, node, json, parser ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn Promise.all( pending );\n\n\t} );\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n */\nfunction computeBounds( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst box = new Box3();\n\n\tif ( attributes.POSITION !== undefined ) {\n\n\t\tconst accessor = parser.json.accessors[ attributes.POSITION ];\n\n\t\tconst min = accessor.min;\n\t\tconst max = accessor.max;\n\n\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\tbox.set(\n\t\t\t\tnew Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ),\n\t\t\t\tnew Vector3( max[ 0 ], max[ 1 ], max[ 2 ] )\n\t\t\t);\n\n\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\tconst boxScale = getNormalizedComponentScale$1( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\tbox.min.multiplyScalar( boxScale );\n\t\t\t\tbox.max.multiplyScalar( boxScale );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\treturn;\n\n\t\t}\n\n\t} else {\n\n\t\treturn;\n\n\t}\n\n\tconst targets = primitiveDef.targets;\n\n\tif ( targets !== undefined ) {\n\n\t\tconst maxDisplacement = new Vector3();\n\t\tconst vector = new Vector3();\n\n\t\tfor ( let i = 0, il = targets.length; i < il; i ++ ) {\n\n\t\t\tconst target = targets[ i ];\n\n\t\t\tif ( target.POSITION !== undefined ) {\n\n\t\t\t\tconst accessor = parser.json.accessors[ target.POSITION ];\n\t\t\t\tconst min = accessor.min;\n\t\t\t\tconst max = accessor.max;\n\n\t\t\t\t// glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement.\n\n\t\t\t\tif ( min !== undefined && max !== undefined ) {\n\n\t\t\t\t\t// we need to get max of absolute components because target weight is [-1,1]\n\t\t\t\t\tvector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) );\n\t\t\t\t\tvector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) );\n\t\t\t\t\tvector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) );\n\n\n\t\t\t\t\tif ( accessor.normalized ) {\n\n\t\t\t\t\t\tconst boxScale = getNormalizedComponentScale$1( WEBGL_COMPONENT_TYPES[ accessor.componentType ] );\n\t\t\t\t\t\tvector.multiplyScalar( boxScale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative\n\t\t\t\t\t// to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets\n\t\t\t\t\t// are used to implement key-frame animations and as such only two are active at a time - this results in very large\n\t\t\t\t\t// boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size.\n\t\t\t\t\tmaxDisplacement.max( vector );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets.\n\t\tbox.expandByVector( maxDisplacement );\n\n\t}\n\n\tgeometry.boundingBox = box;\n\n\tconst sphere = new Sphere();\n\n\tbox.getCenter( sphere.center );\n\tsphere.radius = box.min.distanceTo( box.max ) / 2;\n\n\tgeometry.boundingSphere = sphere;\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {GLTF.Primitive} primitiveDef\n * @param {GLTFParser} parser\n * @return {Promise}\n */\nfunction addPrimitiveAttributes( geometry, primitiveDef, parser ) {\n\n\tconst attributes = primitiveDef.attributes;\n\n\tconst pending = [];\n\n\tfunction assignAttributeAccessor( accessorIndex, attributeName ) {\n\n\t\treturn parser.getDependency( 'accessor', accessorIndex )\n\t\t\t.then( function ( accessor ) {\n\n\t\t\t\tgeometry.setAttribute( attributeName, accessor );\n\n\t\t\t} );\n\n\t}\n\n\tfor ( const gltfAttributeName in attributes ) {\n\n\t\tconst threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase();\n\n\t\t// Skip attributes already provided by e.g. Draco extension.\n\t\tif ( threeAttributeName in geometry.attributes ) continue;\n\n\t\tpending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) );\n\n\t}\n\n\tif ( primitiveDef.indices !== undefined && ! geometry.index ) {\n\n\t\tconst accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) {\n\n\t\t\tgeometry.setIndex( accessor );\n\n\t\t} );\n\n\t\tpending.push( accessor );\n\n\t}\n\n\tassignExtrasToUserData( geometry, primitiveDef );\n\n\tcomputeBounds( geometry, primitiveDef, parser );\n\n\treturn Promise.all( pending ).then( function () {\n\n\t\treturn primitiveDef.targets !== undefined\n\t\t\t? addMorphTargets( geometry, primitiveDef.targets, parser )\n\t\t\t: geometry;\n\n\t} );\n\n}\n\n/**\n * @param {BufferGeometry} geometry\n * @param {Number} drawMode\n * @return {BufferGeometry}\n */\nfunction toTrianglesDrawMode( geometry, drawMode ) {\n\n\tlet index = geometry.getIndex();\n\n\t// generate index if not present\n\n\tif ( index === null ) {\n\n\t\tconst indices = [];\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < position.count; i ++ ) {\n\n\t\t\t\tindices.push( i );\n\n\t\t\t}\n\n\t\t\tgeometry.setIndex( indices );\n\t\t\tindex = geometry.getIndex();\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );\n\t\t\treturn geometry;\n\n\t\t}\n\n\t}\n\n\t//\n\n\tconst numberOfTriangles = index.count - 2;\n\tconst newIndices = [];\n\n\tif ( drawMode === TriangleFanDrawMode ) {\n\n\t\t// gl.TRIANGLE_FAN\n\n\t\tfor ( let i = 1; i <= numberOfTriangles; i ++ ) {\n\n\t\t\tnewIndices.push( index.getX( 0 ) );\n\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\n\t\t}\n\n\t} else {\n\n\t\t// gl.TRIANGLE_STRIP\n\n\t\tfor ( let i = 0; i < numberOfTriangles; i ++ ) {\n\n\t\t\tif ( i % 2 === 0 ) {\n\n\t\t\t\tnewIndices.push( index.getX( i ) );\n\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\n\n\t\t\t} else {\n\n\t\t\t\tnewIndices.push( index.getX( i + 2 ) );\n\t\t\t\tnewIndices.push( index.getX( i + 1 ) );\n\t\t\t\tnewIndices.push( index.getX( i ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tif ( ( newIndices.length / 3 ) !== numberOfTriangles ) {\n\n\t\tconsole.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );\n\n\t}\n\n\t// build final geometry\n\n\tconst newGeometry = geometry.clone();\n\tnewGeometry.setIndex( newIndices );\n\n\treturn newGeometry;\n\n}\n\n/**\n * @author Deepkolos / https://github.com/deepkolos\n */\n\nclass WorkerPool {\n\n\tconstructor( pool = 4 ) {\n\n\t\tthis.pool = pool;\n\t\tthis.queue = [];\n\t\tthis.workers = [];\n\t\tthis.workersResolve = [];\n\t\tthis.workerStatus = 0;\n\n\t}\n\n\t_initWorker( workerId ) {\n\n\t\tif ( ! this.workers[ workerId ] ) {\n\n\t\t\tconst worker = this.workerCreator();\n\t\t\tworker.addEventListener( 'message', this._onMessage.bind( this, workerId ) );\n\t\t\tthis.workers[ workerId ] = worker;\n\n\t\t}\n\n\t}\n\n\t_getIdleWorker() {\n\n\t\tfor ( let i = 0; i < this.pool; i ++ )\n\t\t\tif ( ! ( this.workerStatus & ( 1 << i ) ) ) return i;\n\n\t\treturn - 1;\n\n\t}\n\n\t_onMessage( workerId, msg ) {\n\n\t\tconst resolve = this.workersResolve[ workerId ];\n\t\tresolve && resolve( msg );\n\n\t\tif ( this.queue.length ) {\n\n\t\t\tconst { resolve, msg, transfer } = this.queue.shift();\n\t\t\tthis.workersResolve[ workerId ] = resolve;\n\t\t\tthis.workers[ workerId ].postMessage( msg, transfer );\n\n\t\t} else {\n\n\t\t\tthis.workerStatus ^= 1 << workerId;\n\n\t\t}\n\n\t}\n\n\tsetWorkerCreator( workerCreator ) {\n\n\t\tthis.workerCreator = workerCreator;\n\n\t}\n\n\tsetWorkerLimit( pool ) {\n\n\t\tthis.pool = pool;\n\n\t}\n\n\tpostMessage( msg, transfer ) {\n\n\t\treturn new Promise( ( resolve ) => {\n\n\t\t\tconst workerId = this._getIdleWorker();\n\n\t\t\tif ( workerId !== - 1 ) {\n\n\t\t\t\tthis._initWorker( workerId );\n\t\t\t\tthis.workerStatus |= 1 << workerId;\n\t\t\t\tthis.workersResolve[ workerId ] = resolve;\n\t\t\t\tthis.workers[ workerId ].postMessage( msg, transfer );\n\n\t\t\t} else {\n\n\t\t\t\tthis.queue.push( { resolve, msg, transfer } );\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.workers.forEach( ( worker ) => worker.terminate() );\n\t\tthis.workersResolve.length = 0;\n\t\tthis.workers.length = 0;\n\t\tthis.queue.length = 0;\n\t\tthis.workerStatus = 0;\n\n\t}\n\n}\n\n/**\n * Loader for KTX 2.0 GPU Texture containers.\n *\n * KTX 2.0 is a container format for various GPU texture formats. The loader\n * supports Basis Universal GPU textures, which can be quickly transcoded to\n * a wide variety of GPU texture compression formats. While KTX 2.0 also allows\n * other hardware-specific formats, this loader does not yet parse them.\n *\n * References:\n * - KTX: http://github.khronos.org/KTX-Specification/\n * - DFD: https://www.khronos.org/registry/DataFormat/specs/1.3/dataformat.1.3.html#basicdescriptor\n */\n\nconst KTX2TransferSRGB = 2;\nconst KTX2_ALPHA_PREMULTIPLIED = 1;\nconst _taskCache = new WeakMap();\n\nlet _activeLoaders = 0;\n\nclass KTX2Loader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.transcoderPath = '';\n\t\tthis.transcoderBinary = null;\n\t\tthis.transcoderPending = null;\n\n\t\tthis.workerPool = new WorkerPool();\n\t\tthis.workerSourceURL = '';\n\t\tthis.workerConfig = null;\n\n\t\tif ( typeof MSC_TRANSCODER !== 'undefined' ) {\n\n\t\t\tconsole.warn(\n\n\t\t\t\t'THREE.KTX2Loader: Please update to latest \"basis_transcoder\".'\n\t\t\t\t+ ' \"msc_basis_transcoder\" is no longer supported in three.js r125+.'\n\n\t\t\t);\n\n\t\t}\n\n\t}\n\n\tsetTranscoderPath( path ) {\n\n\t\tthis.transcoderPath = path;\n\n\t\treturn this;\n\n\t}\n\n\tsetWorkerLimit( num ) {\n\n\t\tthis.workerPool.setWorkerLimit( num );\n\n\t\treturn this;\n\n\t}\n\n\tdetectSupport( renderer ) {\n\n\t\tthis.workerConfig = {\n\t\t\tastcSupported: renderer.extensions.has( 'WEBGL_compressed_texture_astc' ),\n\t\t\tetc1Supported: renderer.extensions.has( 'WEBGL_compressed_texture_etc1' ),\n\t\t\tetc2Supported: renderer.extensions.has( 'WEBGL_compressed_texture_etc' ),\n\t\t\tdxtSupported: renderer.extensions.has( 'WEBGL_compressed_texture_s3tc' ),\n\t\t\tbptcSupported: renderer.extensions.has( 'EXT_texture_compression_bptc' ),\n\t\t\tpvrtcSupported: renderer.extensions.has( 'WEBGL_compressed_texture_pvrtc' )\n\t\t\t\t|| renderer.extensions.has( 'WEBKIT_WEBGL_compressed_texture_pvrtc' )\n\t\t};\n\n\n\t\tif ( renderer.capabilities.isWebGL2 ) {\n\n\t\t\t// https://github.com/mrdoob/three.js/pull/22928\n\t\t\tthis.workerConfig.etc1Supported = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinit() {\n\n\t\tif ( ! this.transcoderPending ) {\n\n\t\t\t// Load transcoder wrapper.\n\t\t\tconst jsLoader = new FileLoader( this.manager );\n\t\t\tjsLoader.setPath( this.transcoderPath );\n\t\t\tjsLoader.setWithCredentials( this.withCredentials );\n\t\t\tconst jsContent = jsLoader.loadAsync( 'basis_transcoder.js' );\n\n\t\t\t// Load transcoder WASM binary.\n\t\t\tconst binaryLoader = new FileLoader( this.manager );\n\t\t\tbinaryLoader.setPath( this.transcoderPath );\n\t\t\tbinaryLoader.setResponseType( 'arraybuffer' );\n\t\t\tbinaryLoader.setWithCredentials( this.withCredentials );\n\t\t\tconst binaryContent = binaryLoader.loadAsync( 'basis_transcoder.wasm' );\n\n\t\t\tthis.transcoderPending = Promise.all( [ jsContent, binaryContent ] )\n\t\t\t\t.then( ( [ jsContent, binaryContent ] ) => {\n\n\t\t\t\t\tconst fn = KTX2Loader.BasisWorker.toString();\n\n\t\t\t\t\tconst body = [\n\t\t\t\t\t\t'/* constants */',\n\t\t\t\t\t\t'let _EngineFormat = ' + JSON.stringify( KTX2Loader.EngineFormat ),\n\t\t\t\t\t\t'let _TranscoderFormat = ' + JSON.stringify( KTX2Loader.TranscoderFormat ),\n\t\t\t\t\t\t'let _BasisFormat = ' + JSON.stringify( KTX2Loader.BasisFormat ),\n\t\t\t\t\t\t'/* basis_transcoder.js */',\n\t\t\t\t\t\tjsContent,\n\t\t\t\t\t\t'/* worker */',\n\t\t\t\t\t\tfn.substring( fn.indexOf( '{' ) + 1, fn.lastIndexOf( '}' ) )\n\t\t\t\t\t].join( '\\n' );\n\n\t\t\t\t\tthis.workerSourceURL = URL.createObjectURL( new Blob( [ body ] ) );\n\t\t\t\t\tthis.transcoderBinary = binaryContent;\n\n\t\t\t\t\tthis.workerPool.setWorkerCreator( () => {\n\n\t\t\t\t\t\tconst worker = new Worker( this.workerSourceURL );\n\t\t\t\t\t\tconst transcoderBinary = this.transcoderBinary.slice( 0 );\n\n\t\t\t\t\t\tworker.postMessage( { type: 'init', config: this.workerConfig, transcoderBinary }, [ transcoderBinary ] );\n\n\t\t\t\t\t\treturn worker;\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\tif ( _activeLoaders > 0 ) {\n\n\t\t\t\t// Each instance loads a transcoder and allocates workers, increasing network and memory cost.\n\n\t\t\t\tconsole.warn(\n\n\t\t\t\t\t'THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues.'\n\t\t\t\t\t+ ' Use a single KTX2Loader instance, or call .dispose() on old instances.'\n\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t\t_activeLoaders ++;\n\n\t\t}\n\n\t\treturn this.transcoderPending;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.workerConfig === null ) {\n\n\t\t\tthrow new Error( 'THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.' );\n\n\t\t}\n\n\t\tconst loader = new FileLoader( this.manager );\n\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tloader.load( url, ( buffer ) => {\n\n\t\t\t// Check for an existing task using this buffer. A transferred buffer cannot be transferred\n\t\t\t// again from this thread.\n\t\t\tif ( _taskCache.has( buffer ) ) {\n\n\t\t\t\tconst cachedTask = _taskCache.get( buffer );\n\n\t\t\t\treturn cachedTask.promise.then( onLoad ).catch( onError );\n\n\t\t\t}\n\n\t\t\tthis._createTexture( [ buffer ] )\n\t\t\t\t.then( function ( _texture ) {\n\n\t\t\t\t\ttexture.copy( _texture );\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t} )\n\t\t\t\t.catch( onError );\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n\t_createTextureFrom( transcodeResult ) {\n\n\t\tconst { mipmaps, width, height, format, type, error, dfdTransferFn, dfdFlags } = transcodeResult;\n\n\t\tif ( type === 'error' ) return Promise.reject( error );\n\n\t\tconst texture = new CompressedTexture( mipmaps, width, height, format, UnsignedByteType );\n\t\ttexture.minFilter = mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter;\n\t\ttexture.magFilter = LinearFilter;\n\t\ttexture.generateMipmaps = false;\n\t\ttexture.needsUpdate = true;\n\t\ttexture.encoding = dfdTransferFn === KTX2TransferSRGB ? sRGBEncoding : LinearEncoding;\n\t\ttexture.premultiplyAlpha = !! ( dfdFlags & KTX2_ALPHA_PREMULTIPLIED );\n\n\t\treturn texture;\n\n\t}\n\n\t/**\n\t * @param {ArrayBuffer[]} buffers\n\t * @param {object?} config\n\t * @return {Promise}\n\t */\n\t_createTexture( buffers, config = {} ) {\n\n\t\tconst taskConfig = config;\n\t\tconst texturePending = this.init().then( () => {\n\n\t\t\treturn this.workerPool.postMessage( { type: 'transcode', buffers, taskConfig: taskConfig }, buffers );\n\n\t\t} ).then( ( e ) => this._createTextureFrom( e.data ) );\n\n\t\t// Cache the task result.\n\t\t_taskCache.set( buffers[ 0 ], { promise: texturePending } );\n\n\t\treturn texturePending;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.workerPool.dispose();\n\t\tif ( this.workerSourceURL ) URL.revokeObjectURL( this.workerSourceURL );\n\n\t\t_activeLoaders --;\n\n\t\treturn this;\n\n\t}\n\n}\n\n\n/* CONSTANTS */\n\nKTX2Loader.BasisFormat = {\n\tETC1S: 0,\n\tUASTC_4x4: 1,\n};\n\nKTX2Loader.TranscoderFormat = {\n\tETC1: 0,\n\tETC2: 1,\n\tBC1: 2,\n\tBC3: 3,\n\tBC4: 4,\n\tBC5: 5,\n\tBC7_M6_OPAQUE_ONLY: 6,\n\tBC7_M5: 7,\n\tPVRTC1_4_RGB: 8,\n\tPVRTC1_4_RGBA: 9,\n\tASTC_4x4: 10,\n\tATC_RGB: 11,\n\tATC_RGBA_INTERPOLATED_ALPHA: 12,\n\tRGBA32: 13,\n\tRGB565: 14,\n\tBGR565: 15,\n\tRGBA4444: 16,\n};\n\nKTX2Loader.EngineFormat = {\n\tRGBAFormat: RGBAFormat,\n\tRGBA_ASTC_4x4_Format: RGBA_ASTC_4x4_Format,\n\tRGBA_BPTC_Format: RGBA_BPTC_Format,\n\tRGBA_ETC2_EAC_Format: RGBA_ETC2_EAC_Format,\n\tRGBA_PVRTC_4BPPV1_Format: RGBA_PVRTC_4BPPV1_Format,\n\tRGBA_S3TC_DXT5_Format: RGBA_S3TC_DXT5_Format,\n\tRGB_ETC1_Format: RGB_ETC1_Format,\n\tRGB_ETC2_Format: RGB_ETC2_Format,\n\tRGB_PVRTC_4BPPV1_Format: RGB_PVRTC_4BPPV1_Format,\n\tRGB_S3TC_DXT1_Format: RGB_S3TC_DXT1_Format,\n};\n\n\n/* WEB WORKER */\n\nKTX2Loader.BasisWorker = function () {\n\n\tlet config;\n\tlet transcoderPending;\n\tlet BasisModule;\n\n\tconst EngineFormat = _EngineFormat; // eslint-disable-line no-undef\n\tconst TranscoderFormat = _TranscoderFormat; // eslint-disable-line no-undef\n\tconst BasisFormat = _BasisFormat; // eslint-disable-line no-undef\n\n\tself.addEventListener( 'message', function ( e ) {\n\n\t\tconst message = e.data;\n\n\t\tswitch ( message.type ) {\n\n\t\t\tcase 'init':\n\t\t\t\tconfig = message.config;\n\t\t\t\tinit( message.transcoderBinary );\n\t\t\t\tbreak;\n\n\t\t\tcase 'transcode':\n\t\t\t\ttranscoderPending.then( () => {\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\tconst { width, height, hasAlpha, mipmaps, format, dfdTransferFn, dfdFlags } = transcode( message.buffers[ 0 ] );\n\n\t\t\t\t\t\tconst buffers = [];\n\n\t\t\t\t\t\tfor ( let i = 0; i < mipmaps.length; ++ i ) {\n\n\t\t\t\t\t\t\tbuffers.push( mipmaps[ i ].data.buffer );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tself.postMessage( { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps, format, dfdTransferFn, dfdFlags }, buffers );\n\n\t\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\t\tconsole.error( error );\n\n\t\t\t\t\t\tself.postMessage( { type: 'error', id: message.id, error: error.message } );\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t} );\n\n\tfunction init( wasmBinary ) {\n\n\t\ttranscoderPending = new Promise( ( resolve ) => {\n\n\t\t\tBasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n\t\t\tBASIS( BasisModule ); // eslint-disable-line no-undef\n\n\t\t} ).then( () => {\n\n\t\t\tBasisModule.initializeBasis();\n\n\t\t\tif ( BasisModule.KTX2File === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.KTX2Loader: Please update Basis Universal transcoder.' );\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tfunction transcode( buffer ) {\n\n\t\tconst ktx2File = new BasisModule.KTX2File( new Uint8Array( buffer ) );\n\n\t\tfunction cleanup() {\n\n\t\t\tktx2File.close();\n\t\t\tktx2File.delete();\n\n\t\t}\n\n\t\tif ( ! ktx2File.isValid() ) {\n\n\t\t\tcleanup();\n\t\t\tthrow new Error( 'THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file' );\n\n\t\t}\n\n\t\tconst basisFormat = ktx2File.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S;\n\t\tconst width = ktx2File.getWidth();\n\t\tconst height = ktx2File.getHeight();\n\t\tconst levels = ktx2File.getLevels();\n\t\tconst hasAlpha = ktx2File.getHasAlpha();\n\t\tconst dfdTransferFn = ktx2File.getDFDTransferFunc();\n\t\tconst dfdFlags = ktx2File.getDFDFlags();\n\n\t\tconst { transcoderFormat, engineFormat } = getTranscoderFormat( basisFormat, width, height, hasAlpha );\n\n\t\tif ( ! width || ! height || ! levels ) {\n\n\t\t\tcleanup();\n\t\t\tthrow new Error( 'THREE.KTX2Loader:\tInvalid texture' );\n\n\t\t}\n\n\t\tif ( ! ktx2File.startTranscoding() ) {\n\n\t\t\tcleanup();\n\t\t\tthrow new Error( 'THREE.KTX2Loader: .startTranscoding failed' );\n\n\t\t}\n\n\t\tconst mipmaps = [];\n\n\t\tfor ( let mip = 0; mip < levels; mip ++ ) {\n\n\t\t\tconst levelInfo = ktx2File.getImageLevelInfo( mip, 0, 0 );\n\t\t\tconst mipWidth = levelInfo.origWidth;\n\t\t\tconst mipHeight = levelInfo.origHeight;\n\t\t\tconst dst = new Uint8Array( ktx2File.getImageTranscodedSizeInBytes( mip, 0, 0, transcoderFormat ) );\n\n\t\t\tconst status = ktx2File.transcodeImage(\n\t\t\t\tdst,\n\t\t\t\tmip,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\ttranscoderFormat,\n\t\t\t\t0,\n\t\t\t\t- 1,\n\t\t\t\t- 1,\n\t\t\t);\n\n\t\t\tif ( ! status ) {\n\n\t\t\t\tcleanup();\n\t\t\t\tthrow new Error( 'THREE.KTX2Loader: .transcodeImage failed.' );\n\n\t\t\t}\n\n\t\t\tmipmaps.push( { data: dst, width: mipWidth, height: mipHeight } );\n\n\t\t}\n\n\t\tcleanup();\n\n\t\treturn { width, height, hasAlpha, mipmaps, format: engineFormat, dfdTransferFn, dfdFlags };\n\n\t}\n\n\t//\n\n\t// Optimal choice of a transcoder target format depends on the Basis format (ETC1S or UASTC),\n\t// device capabilities, and texture dimensions. The list below ranks the formats separately\n\t// for ETC1S and UASTC.\n\t//\n\t// In some cases, transcoding UASTC to RGBA32 might be preferred for higher quality (at\n\t// significant memory cost) compared to ETC1/2, BC1/3, and PVRTC. The transcoder currently\n\t// chooses RGBA32 only as a last resort and does not expose that option to the caller.\n\tconst FORMAT_OPTIONS = [\n\t\t{\n\t\t\tif: 'astcSupported',\n\t\t\tbasisFormat: [ BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4 ],\n\t\t\tengineFormat: [ EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format ],\n\t\t\tpriorityETC1S: Infinity,\n\t\t\tpriorityUASTC: 1,\n\t\t\tneedsPowerOfTwo: false,\n\t\t},\n\t\t{\n\t\t\tif: 'bptcSupported',\n\t\t\tbasisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5 ],\n\t\t\tengineFormat: [ EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format ],\n\t\t\tpriorityETC1S: 3,\n\t\t\tpriorityUASTC: 2,\n\t\t\tneedsPowerOfTwo: false,\n\t\t},\n\t\t{\n\t\t\tif: 'dxtSupported',\n\t\t\tbasisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.BC1, TranscoderFormat.BC3 ],\n\t\t\tengineFormat: [ EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format ],\n\t\t\tpriorityETC1S: 4,\n\t\t\tpriorityUASTC: 5,\n\t\t\tneedsPowerOfTwo: false,\n\t\t},\n\t\t{\n\t\t\tif: 'etc2Supported',\n\t\t\tbasisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.ETC1, TranscoderFormat.ETC2 ],\n\t\t\tengineFormat: [ EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format ],\n\t\t\tpriorityETC1S: 1,\n\t\t\tpriorityUASTC: 3,\n\t\t\tneedsPowerOfTwo: false,\n\t\t},\n\t\t{\n\t\t\tif: 'etc1Supported',\n\t\t\tbasisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.ETC1 ],\n\t\t\tengineFormat: [ EngineFormat.RGB_ETC1_Format ],\n\t\t\tpriorityETC1S: 2,\n\t\t\tpriorityUASTC: 4,\n\t\t\tneedsPowerOfTwo: false,\n\t\t},\n\t\t{\n\t\t\tif: 'pvrtcSupported',\n\t\t\tbasisFormat: [ BasisFormat.ETC1S, BasisFormat.UASTC_4x4 ],\n\t\t\ttranscoderFormat: [ TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA ],\n\t\t\tengineFormat: [ EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format ],\n\t\t\tpriorityETC1S: 5,\n\t\t\tpriorityUASTC: 6,\n\t\t\tneedsPowerOfTwo: true,\n\t\t},\n\t];\n\n\tconst ETC1S_OPTIONS = FORMAT_OPTIONS.sort( function ( a, b ) {\n\n\t\treturn a.priorityETC1S - b.priorityETC1S;\n\n\t} );\n\tconst UASTC_OPTIONS = FORMAT_OPTIONS.sort( function ( a, b ) {\n\n\t\treturn a.priorityUASTC - b.priorityUASTC;\n\n\t} );\n\n\tfunction getTranscoderFormat( basisFormat, width, height, hasAlpha ) {\n\n\t\tlet transcoderFormat;\n\t\tlet engineFormat;\n\n\t\tconst options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS;\n\n\t\tfor ( let i = 0; i < options.length; i ++ ) {\n\n\t\t\tconst opt = options[ i ];\n\n\t\t\tif ( ! config[ opt.if ] ) continue;\n\t\t\tif ( ! opt.basisFormat.includes( basisFormat ) ) continue;\n\t\t\tif ( hasAlpha && opt.transcoderFormat.length < 2 ) continue;\n\t\t\tif ( opt.needsPowerOfTwo && ! ( isPowerOfTwo( width ) && isPowerOfTwo( height ) ) ) continue;\n\n\t\t\ttranscoderFormat = opt.transcoderFormat[ hasAlpha ? 1 : 0 ];\n\t\t\tengineFormat = opt.engineFormat[ hasAlpha ? 1 : 0 ];\n\n\t\t\treturn { transcoderFormat, engineFormat };\n\n\t\t}\n\n\t\tconsole.warn( 'THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32.' );\n\n\t\ttranscoderFormat = TranscoderFormat.RGBA32;\n\t\tengineFormat = EngineFormat.RGBAFormat;\n\n\t\treturn { transcoderFormat, engineFormat };\n\n\t}\n\n\tfunction isPowerOfTwo( value ) {\n\n\t\tif ( value <= 2 ) return true;\n\n\t\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n\t}\n\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$a, _b$9;\nconst $retainerCount = Symbol('retainerCount');\nconst $recentlyUsed = Symbol('recentlyUsed');\nconst $evict = Symbol('evict');\nconst $evictionThreshold = Symbol('evictionThreshold');\nconst $cache = Symbol('cache');\n/**\n * The CacheEvictionPolicy manages the lifecycle for items in a cache,\n * evicting any items outside some threshold bounds in \"recently used\" order,\n * if they are evictable.\n *\n * Items are considered cached as they are retained. When all retainers\n * of an item release it, that item is considered evictable.\n */\nclass CacheEvictionPolicy {\n constructor(cache, evictionThreshold = 5) {\n this[_a$a] = new Map();\n this[_b$9] = [];\n this[$cache] = cache;\n this[$evictionThreshold] = evictionThreshold;\n }\n /**\n * The eviction threshold is the maximum number of items to hold\n * in cache indefinitely. Items within the threshold (in recently\n * used order) will continue to be cached even if they have zero\n * retainers.\n */\n set evictionThreshold(value) {\n this[$evictionThreshold] = value;\n this[$evict]();\n }\n get evictionThreshold() {\n return this[$evictionThreshold];\n }\n /**\n * A reference to the cache that operates under this policy\n */\n get cache() {\n return this[$cache];\n }\n /**\n * Given an item key, returns the number of retainers of that item\n */\n retainerCount(key) {\n return this[$retainerCount].get(key) || 0;\n }\n /**\n * Resets the internal tracking of cache item retainers. Use only in cases\n * where it is certain that all retained cache items have been accounted for!\n */\n reset() {\n this[$retainerCount].clear();\n this[$recentlyUsed] = [];\n }\n /**\n * Mark a given cache item as retained, where the item is represented\n * by its key. An item can have any number of retainers.\n */\n retain(key) {\n if (!this[$retainerCount].has(key)) {\n this[$retainerCount].set(key, 0);\n }\n this[$retainerCount].set(key, this[$retainerCount].get(key) + 1);\n const recentlyUsedIndex = this[$recentlyUsed].indexOf(key);\n if (recentlyUsedIndex !== -1) {\n this[$recentlyUsed].splice(recentlyUsedIndex, 1);\n }\n this[$recentlyUsed].unshift(key);\n // Evict, in case retaining a new item pushed an evictable item beyond the\n // eviction threshold\n this[$evict]();\n }\n /**\n * Mark a given cache item as released by one of its retainers, where the item\n * is represented by its key. When all retainers of an item have released it,\n * the item is considered evictable.\n */\n release(key) {\n if (this[$retainerCount].has(key)) {\n this[$retainerCount].set(key, Math.max(this[$retainerCount].get(key) - 1, 0));\n }\n this[$evict]();\n }\n [(_a$a = $retainerCount, _b$9 = $recentlyUsed, $evict)]() {\n if (this[$recentlyUsed].length < this[$evictionThreshold]) {\n return;\n }\n for (let i = this[$recentlyUsed].length - 1; i >= this[$evictionThreshold]; --i) {\n const key = this[$recentlyUsed][i];\n const retainerCount = this[$retainerCount].get(key);\n if (retainerCount === 0) {\n this[$cache].delete(key);\n this[$recentlyUsed].splice(i, 1);\n }\n }\n }\n}\n\n/* @license\n * Copyright 2021 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * KHR_materials_variants specification allows duplicated variant names\n * but it makes handling the extension complex.\n * We ensure tha names and make it easier.\n * If you want to export the extension with the original names\n * you are recommended to write GLTFExporter plugin to restore the names.\n *\n * @param variantNames {Array}\n * @return {Array}\n */\nconst ensureUniqueNames = (variantNames) => {\n const uniqueNames = [];\n const knownNames = new Set();\n for (const name of variantNames) {\n let uniqueName = name;\n let suffix = 0;\n // @TODO: An easy solution.\n // O(N^2) in the worst scenario where N is variantNames.length.\n // Fix me if needed.\n while (knownNames.has(uniqueName)) {\n uniqueName = name + '.' + (++suffix);\n }\n knownNames.add(uniqueName);\n uniqueNames.push(uniqueName);\n }\n return uniqueNames;\n};\n/**\n * Convert mappings array to table object to make handling the extension easier.\n *\n * @param\n * extensionDef {glTF.meshes[n].primitive.extensions.KHR_materials_variants}\n * @param variantNames {Array} Required to be unique names\n * @return {Map}\n */\nconst mappingsArrayToTable = (extensionDef) => {\n const table = new Map();\n for (const mapping of extensionDef.mappings) {\n for (const variant of mapping.variants) {\n table.set(variant, { material: null, gltfMaterialIndex: mapping.material });\n }\n }\n return table;\n};\nclass GLTFMaterialsVariantsExtension {\n constructor(parser) {\n this.parser = parser;\n this.name = 'KHR_materials_variants';\n }\n // Note that the following properties will be overridden even if they are\n // pre-defined\n // - gltf.userData.variants\n // - mesh.userData.variantMaterials\n afterRoot(gltf) {\n const parser = this.parser;\n const json = parser.json;\n if (json.extensions === undefined ||\n json.extensions[this.name] === undefined) {\n return null;\n }\n const extensionDef = json.extensions[this.name];\n const variantsDef = extensionDef.variants || [];\n const variants = ensureUniqueNames(variantsDef.map((v) => v.name));\n for (const scene of gltf.scenes) {\n // Save the variants data under associated mesh.userData\n scene.traverse(object => {\n const mesh = object;\n if (!mesh.isMesh) {\n return;\n }\n const association = parser.associations.get(mesh);\n if (association == null || association.meshes == null || association.primitives == null) {\n return;\n }\n const meshDef = json.meshes[association.meshes];\n const primitivesDef = meshDef.primitives;\n const primitiveDef = primitivesDef[association.primitives];\n const extensionsDef = primitiveDef.extensions;\n if (!extensionsDef || !extensionsDef[this.name]) {\n return;\n }\n mesh.userData.variantMaterials = mappingsArrayToTable(extensionsDef[this.name]);\n });\n }\n gltf.userData.variants = variants;\n return Promise.resolve();\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$9, _b$8;\n/**\n * A helper to Promise-ify a Three.js GLTFLoader\n */\nconst loadWithLoader = (url, loader, progressCallback = () => { }) => {\n const onProgress = (event) => {\n const fraction = event.loaded / event.total;\n progressCallback(Math.max(0, Math.min(1, isFinite(fraction) ? fraction : 1)));\n };\n return new Promise((resolve, reject) => {\n loader.load(url, resolve, onProgress, reject);\n });\n};\n/** Helper to load a script tag. */\nconst fetchScript = (src) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n document.body.appendChild(script);\n script.onload = resolve;\n script.onerror = reject;\n script.async = true;\n script.src = src;\n });\n};\nconst cache = new Map();\nconst preloaded = new Map();\nlet dracoDecoderLocation;\nconst dracoLoader = new DRACOLoader();\nlet ktx2TranscoderLocation;\nconst ktx2Loader = new KTX2Loader();\nlet meshoptDecoderLocation;\nlet meshoptDecoder;\nconst $loader = Symbol('loader');\nconst $evictionPolicy = Symbol('evictionPolicy');\nconst $GLTFInstance = Symbol('GLTFInstance');\nclass CachingGLTFLoader extends EventDispatcher {\n constructor(GLTFInstance) {\n super();\n this[_b$8] = new GLTFLoader().register(parser => new GLTFMaterialsVariantsExtension(parser));\n this[$GLTFInstance] = GLTFInstance;\n this[$loader].setDRACOLoader(dracoLoader);\n this[$loader].setKTX2Loader(ktx2Loader);\n }\n static setDRACODecoderLocation(url) {\n dracoDecoderLocation = url;\n dracoLoader.setDecoderPath(url);\n }\n static getDRACODecoderLocation() {\n return dracoDecoderLocation;\n }\n static setKTX2TranscoderLocation(url) {\n ktx2TranscoderLocation = url;\n ktx2Loader.setTranscoderPath(url);\n }\n static getKTX2TranscoderLocation() {\n return ktx2TranscoderLocation;\n }\n static setMeshoptDecoderLocation(url) {\n if (meshoptDecoderLocation !== url) {\n meshoptDecoderLocation = url;\n meshoptDecoder = fetchScript(url)\n .then(() => MeshoptDecoder.ready)\n .then(() => MeshoptDecoder);\n }\n }\n static getMeshoptDecoderLocation() {\n return meshoptDecoderLocation;\n }\n static initializeKTX2Loader(renderer) {\n ktx2Loader.detectSupport(renderer);\n }\n static get cache() {\n return cache;\n }\n /** @nocollapse */\n static clearCache() {\n cache.forEach((_value, url) => {\n this.delete(url);\n });\n this[$evictionPolicy].reset();\n }\n static has(url) {\n return cache.has(url);\n }\n /** @nocollapse */\n static async delete(url) {\n if (!this.has(url)) {\n return;\n }\n const gltfLoads = cache.get(url);\n preloaded.delete(url);\n cache.delete(url);\n const gltf = await gltfLoads;\n // Dispose of the cached glTF's materials and geometries:\n gltf.dispose();\n }\n /**\n * Returns true if the model that corresponds to the specified url is\n * available in our local cache.\n */\n static hasFinishedLoading(url) {\n return !!preloaded.get(url);\n }\n get [(_a$9 = $evictionPolicy, _b$8 = $loader, $evictionPolicy)]() {\n return this.constructor[$evictionPolicy];\n }\n /**\n * Preloads a glTF, populating the cache. Returns a promise that resolves\n * when the cache is populated.\n */\n async preload(url, element, progressCallback = () => { }) {\n this[$loader].setWithCredentials(CachingGLTFLoader.withCredentials);\n this.dispatchEvent({ type: 'preload', element: element, src: url });\n if (!cache.has(url)) {\n if (meshoptDecoder != null) {\n this[$loader].setMeshoptDecoder(await meshoptDecoder);\n }\n const rawGLTFLoads = loadWithLoader(url, this[$loader], (progress) => {\n progressCallback(progress * 0.8);\n });\n const GLTFInstance = this[$GLTFInstance];\n const gltfInstanceLoads = rawGLTFLoads\n .then((rawGLTF) => {\n return GLTFInstance.prepare(rawGLTF);\n })\n .then((preparedGLTF) => {\n progressCallback(0.9);\n return new GLTFInstance(preparedGLTF);\n })\n .catch((reason => {\n console.error(reason);\n return new GLTFInstance();\n }));\n cache.set(url, gltfInstanceLoads);\n }\n await cache.get(url);\n preloaded.set(url, true);\n if (progressCallback) {\n progressCallback(1.0);\n }\n }\n /**\n * Loads a glTF from the specified url and resolves a unique clone of the\n * glTF. If the glTF has already been loaded, makes a clone of the cached\n * copy.\n */\n async load(url, element, progressCallback = () => { }) {\n await this.preload(url, element, progressCallback);\n const gltf = await cache.get(url);\n const clone = await gltf.clone();\n this[$evictionPolicy].retain(url);\n // Patch dispose so that we can properly account for instance use\n // in the caching layer:\n clone.dispose = () => {\n this[$evictionPolicy].release(url);\n };\n return clone;\n }\n}\nCachingGLTFLoader[_a$9] = new CacheEvictionPolicy(CachingGLTFLoader);\n\nclass CSS2DObject extends Object3D {\n\n\tconstructor( element = document.createElement( 'div' ) ) {\n\n\t\tsuper();\n\n\t\tthis.element = element;\n\n\t\tthis.element.style.position = 'absolute';\n\t\tthis.element.style.userSelect = 'none';\n\n\t\tthis.element.setAttribute( 'draggable', false );\n\n\t\tthis.addEventListener( 'removed', function () {\n\n\t\t\tthis.traverse( function ( object ) {\n\n\t\t\t\tif ( object.element instanceof Element && object.element.parentNode !== null ) {\n\n\t\t\t\t\tobject.element.parentNode.removeChild( object.element );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.element = source.element.cloneNode( true );\n\n\t\treturn this;\n\n\t}\n\n}\n\nCSS2DObject.prototype.isCSS2DObject = true;\n\n//\n\nconst _vector = new Vector3();\nconst _viewMatrix = new Matrix4();\nconst _viewProjectionMatrix = new Matrix4();\nconst _a$8 = new Vector3();\nconst _b$7 = new Vector3();\n\nclass CSS2DRenderer {\n\n\tconstructor( parameters = {} ) {\n\n\t\tconst _this = this;\n\n\t\tlet _width, _height;\n\t\tlet _widthHalf, _heightHalf;\n\n\t\tconst cache = {\n\t\t\tobjects: new WeakMap()\n\t\t};\n\n\t\tconst domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );\n\n\t\tdomElement.style.overflow = 'hidden';\n\n\t\tthis.domElement = domElement;\n\n\t\tthis.getSize = function () {\n\n\t\t\treturn {\n\t\t\t\twidth: _width,\n\t\t\t\theight: _height\n\t\t\t};\n\n\t\t};\n\n\t\tthis.render = function ( scene, camera ) {\n\n\t\t\tif ( scene.autoUpdate === true ) scene.updateMatrixWorld();\n\t\t\tif ( camera.parent === null ) camera.updateMatrixWorld();\n\n\t\t\t_viewMatrix.copy( camera.matrixWorldInverse );\n\t\t\t_viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );\n\n\t\t\trenderObject( scene, scene, camera );\n\t\t\tzOrder( scene );\n\n\t\t};\n\n\t\tthis.setSize = function ( width, height ) {\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\t_widthHalf = _width / 2;\n\t\t\t_heightHalf = _height / 2;\n\n\t\t\tdomElement.style.width = width + 'px';\n\t\t\tdomElement.style.height = height + 'px';\n\n\t\t};\n\n\t\tfunction renderObject( object, scene, camera ) {\n\n\t\t\tif ( object.isCSS2DObject ) {\n\n\t\t\t\t_vector.setFromMatrixPosition( object.matrixWorld );\n\t\t\t\t_vector.applyMatrix4( _viewProjectionMatrix );\n\n\t\t\t\tconst visible = ( object.visible === true ) && ( _vector.z >= - 1 && _vector.z <= 1 ) && ( object.layers.test( camera.layers ) === true );\n\t\t\t\tobject.element.style.display = ( visible === true ) ? '' : 'none';\n\n\t\t\t\tif ( visible === true ) {\n\n\t\t\t\t\tobject.onBeforeRender( _this, scene, camera );\n\n\t\t\t\t\tconst element = object.element;\n\n\t\t\t\t\tif ( /apple/i.test( navigator.vendor ) ) {\n\n\t\t\t\t\t\t// https://github.com/mrdoob/three.js/issues/21415\n\t\t\t\t\t\telement.style.transform = 'translate(-50%,-50%) translate(' + Math.round( _vector.x * _widthHalf + _widthHalf ) + 'px,' + Math.round( - _vector.y * _heightHalf + _heightHalf ) + 'px)';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\telement.style.transform = 'translate(-50%,-50%) translate(' + ( _vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - _vector.y * _heightHalf + _heightHalf ) + 'px)';\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( element.parentNode !== domElement ) {\n\n\t\t\t\t\t\tdomElement.appendChild( element );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobject.onAfterRender( _this, scene, camera );\n\n\t\t\t\t}\n\n\t\t\t\tconst objectData = {\n\t\t\t\t\tdistanceToCameraSquared: getDistanceToSquared( camera, object )\n\t\t\t\t};\n\n\t\t\t\tcache.objects.set( object, objectData );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = object.children.length; i < l; i ++ ) {\n\n\t\t\t\trenderObject( object.children[ i ], scene, camera );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction getDistanceToSquared( object1, object2 ) {\n\n\t\t\t_a$8.setFromMatrixPosition( object1.matrixWorld );\n\t\t\t_b$7.setFromMatrixPosition( object2.matrixWorld );\n\n\t\t\treturn _a$8.distanceToSquared( _b$7 );\n\n\t\t}\n\n\t\tfunction filterAndFlatten( scene ) {\n\n\t\t\tconst result = [];\n\n\t\t\tscene.traverse( function ( object ) {\n\n\t\t\t\tif ( object.isCSS2DObject ) result.push( object );\n\n\t\t\t} );\n\n\t\t\treturn result;\n\n\t\t}\n\n\t\tfunction zOrder( scene ) {\n\n\t\t\tconst sorted = filterAndFlatten( scene ).sort( function ( a, b ) {\n\n\t\t\t\tif ( a.renderOrder !== b.renderOrder ) {\n\n\t\t\t\t\treturn b.renderOrder - a.renderOrder;\n\n\t\t\t\t}\n\n\t\t\t\tconst distanceA = cache.objects.get( a ).distanceToCameraSquared;\n\t\t\t\tconst distanceB = cache.objects.get( b ).distanceToCameraSquared;\n\n\t\t\t\treturn distanceA - distanceB;\n\n\t\t\t} );\n\n\t\t\tconst zMax = sorted.length;\n\n\t\t\tfor ( let i = 0, l = sorted.length; i < l; i ++ ) {\n\n\t\t\t\tsorted[ i ].element.style.zIndex = zMax - i;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst deserializeUrl = (url) => (!!url && url !== 'null') ? toFullUrl(url) : null;\nconst assertIsArCandidate = () => {\n if (IS_WEBXR_AR_CANDIDATE) {\n return;\n }\n const missingApis = [];\n if (!HAS_WEBXR_DEVICE_API) {\n missingApis.push('WebXR Device API');\n }\n if (!HAS_WEBXR_HIT_TEST_API) {\n missingApis.push('WebXR Hit Test API');\n }\n throw new Error(`The following APIs are required for AR, but are missing in this browser: ${missingApis.join(', ')}`);\n};\n/**\n * Converts a partial URL string to a fully qualified URL string.\n *\n * @param {String} url\n * @return {String}\n */\nconst toFullUrl = (partialUrl) => {\n const url = new URL(partialUrl, window.location.toString());\n return url.toString();\n};\n/**\n * Returns a throttled version of a given function that is only invoked at most\n * once within a given threshold of time in milliseconds.\n *\n * The throttled version of the function has a \"flush\" property that resets the\n * threshold for cases when immediate invokation is desired.\n */\nconst throttle = (fn, ms) => {\n let timer = null;\n const throttled = (...args) => {\n if (timer != null) {\n return;\n }\n fn(...args);\n timer = self.setTimeout(() => timer = null, ms);\n };\n throttled.flush = () => {\n if (timer != null) {\n self.clearTimeout(timer);\n timer = null;\n }\n };\n return throttled;\n};\nconst debounce = (fn, ms) => {\n let timer = null;\n return (...args) => {\n if (timer != null) {\n self.clearTimeout(timer);\n }\n timer = self.setTimeout(() => {\n timer = null;\n fn(...args);\n }, ms);\n };\n};\n/**\n * @param {Number} value\n * @param {Number} lowerLimit\n * @param {Number} upperLimit\n * @return {Number} value clamped within lowerLimit..upperLimit\n */\nconst clamp = (value, lowerLimit, upperLimit) => Math.max(lowerLimit, Math.min(upperLimit, value));\n// The DPR we use for a \"capped\" scenario (see resolveDpr below):\nconst CAPPED_DEVICE_PIXEL_RATIO = 1;\n/**\n * This helper analyzes the layout of the current page to decide if we should\n * use the natural device pixel ratio, or a capped value.\n *\n * We cap DPR if there is no meta viewport (suggesting that user is not\n * consciously specifying how to scale the viewport relative to the device\n * screen size).\n *\n * The rationale is that this condition typically leads to a pathological\n * outcome on mobile devices. When the window dimensions are scaled up on a\n * device with a high DPR, we create a canvas that is much larger than\n * appropriate to accomodate for the pixel density if we naively use the\n * reported DPR.\n *\n * This value needs to be measured in real time, as device pixel ratio can\n * change over time (e.g., when a user zooms the page). Also, in some cases\n * (such as Firefox on Android), the window's innerWidth is initially reported\n * as the same as the screen's availWidth but changes later.\n *\n * A user who specifies a meta viewport, thereby consciously creating scaling\n * conditions where is slow, will be encouraged to live their\n * best life.\n */\nconst resolveDpr = (() => {\n // If true, implies that the user is conscious of the viewport scaling\n // relative to the device screen size.\n const HAS_META_VIEWPORT_TAG = (() => {\n var _a;\n // Search result pages sometimes do not include a meta viewport tag even\n // though they are certainly modern and work properly with devicePixelRatio.\n if ((_a = document.documentElement.getAttribute('itemtype')) === null || _a === void 0 ? void 0 : _a.includes('schema.org/SearchResultsPage')) {\n return true;\n }\n const metas = document.head != null ?\n Array.from(document.head.querySelectorAll('meta')) :\n [];\n for (const meta of metas) {\n if (meta.name === 'viewport') {\n return true;\n }\n }\n return false;\n })();\n if (!HAS_META_VIEWPORT_TAG) {\n console.warn('No detected; will cap pixel density at 1.');\n }\n return () => HAS_META_VIEWPORT_TAG ? window.devicePixelRatio :\n CAPPED_DEVICE_PIXEL_RATIO;\n})();\n/**\n * Debug mode is enabled when one of the two following conditions is true:\n *\n * 1. A 'model-viewer-debug-mode' query parameter is present in the current\n * search string\n * 2. There is a global object ModelViewerElement with a debugMode property set\n * to true\n */\nconst isDebugMode = (() => {\n const debugQueryParameterName = 'model-viewer-debug-mode';\n const debugQueryParameter = new RegExp(`[?&]${debugQueryParameterName}(&|$)`);\n return () => (self.ModelViewerElement &&\n self.ModelViewerElement.debugMode) ||\n (self.location && self.location.search &&\n self.location.search.match(debugQueryParameter));\n})();\nconst timePasses = (ms = 0) => new Promise(resolve => setTimeout(resolve, ms));\n/**\n * @param {EventTarget|EventDispatcher} target\n * @param {string} eventName\n * @param {?Function} predicate\n */\nconst waitForEvent = (target, eventName, predicate = null) => new Promise(resolve => {\n function handler(event) {\n if (!predicate || predicate(event)) {\n resolve(event);\n target.removeEventListener(eventName, handler);\n }\n }\n target.addEventListener(eventName, handler);\n});\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst SETTLING_TIME = 10000; // plenty long enough\nconst MIN_DECAY_MILLISECONDS = 0.001;\nconst DECAY_MILLISECONDS = 50;\n/**\n * The Damper class is a generic second-order critically damped system that does\n * one linear step of the desired length of time. The only parameter is\n * DECAY_MILLISECONDS. This common parameter makes all states converge at the\n * same rate regardless of scale. xNormalization is a number to provide the\n * rough scale of x, such that NIL_SPEED clamping also happens at roughly the\n * same convergence for all states.\n */\nclass Damper {\n constructor(decayMilliseconds = DECAY_MILLISECONDS) {\n this.velocity = 0;\n this.naturalFrequency = 0;\n this.setDecayTime(decayMilliseconds);\n }\n setDecayTime(decayMilliseconds) {\n this.naturalFrequency =\n 1 / Math.max(MIN_DECAY_MILLISECONDS, decayMilliseconds);\n }\n update(x, xGoal, timeStepMilliseconds, xNormalization) {\n const nilSpeed = 0.0002 * this.naturalFrequency;\n if (x == null || xNormalization === 0) {\n return xGoal;\n }\n if (x === xGoal && this.velocity === 0) {\n return xGoal;\n }\n if (timeStepMilliseconds < 0) {\n return x;\n }\n // Exact solution to a critically damped second-order system, where:\n // acceleration = this.naturalFrequency * this.naturalFrequency * (xGoal\n // - x) - 2 * this.naturalFrequency * this.velocity;\n const deltaX = (x - xGoal);\n const intermediateVelocity = this.velocity + this.naturalFrequency * deltaX;\n const intermediateX = deltaX + timeStepMilliseconds * intermediateVelocity;\n const decay = Math.exp(-this.naturalFrequency * timeStepMilliseconds);\n const newVelocity = (intermediateVelocity - this.naturalFrequency * intermediateX) * decay;\n const acceleration = -this.naturalFrequency * (newVelocity + intermediateVelocity * decay);\n if (Math.abs(newVelocity) < nilSpeed * Math.abs(xNormalization) &&\n acceleration * deltaX >= 0) {\n // This ensures the controls settle and stop calling this function instead\n // of asymptotically approaching their goal.\n this.velocity = 0;\n return xGoal;\n }\n else {\n this.velocity = newVelocity;\n return xGoal + intermediateX * decay;\n }\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst numberNode = (value, unit) => ({ type: 'number', number: value, unit });\n/**\n * Given a string representing a comma-separated set of CSS-like expressions,\n * parses and returns an array of ASTs that correspond to those expressions.\n *\n * Currently supported syntax includes:\n *\n * - functions (top-level and nested)\n * - calc() arithmetic operators\n * - numbers with units\n * - hexidecimal-encoded colors in 3, 6 or 8 digit form\n * - idents\n *\n * All syntax is intended to match the parsing rules and semantics of the actual\n * CSS spec as closely as possible.\n *\n * @see https://www.w3.org/TR/CSS2/\n * @see https://www.w3.org/TR/css-values-3/\n */\nconst parseExpressions = (() => {\n const cache = {};\n const MAX_PARSE_ITERATIONS = 1000; // Arbitrarily large\n return (inputString) => {\n const cacheKey = inputString;\n if (cacheKey in cache) {\n return cache[cacheKey];\n }\n const expressions = [];\n let parseIterations = 0;\n while (inputString) {\n if (++parseIterations > MAX_PARSE_ITERATIONS) {\n // Avoid a potentially infinite loop due to typos:\n inputString = '';\n break;\n }\n const expressionParseResult = parseExpression(inputString);\n const expression = expressionParseResult.nodes[0];\n if (expression == null || expression.terms.length === 0) {\n break;\n }\n expressions.push(expression);\n inputString = expressionParseResult.remainingInput;\n }\n return cache[cacheKey] = expressions;\n };\n})();\n/**\n * Parse a single expression. For the purposes of our supported syntax, an\n * expression is the set of semantically meaningful terms that appear before the\n * next comma, or between the parens of a function invokation.\n */\nconst parseExpression = (() => {\n const IS_IDENT_RE = /^(\\-\\-|[a-z\\u0240-\\uffff])/i;\n const IS_OPERATOR_RE = /^([\\*\\+\\/]|[\\-]\\s)/i;\n const IS_EXPRESSION_END_RE = /^[\\),]/;\n const FUNCTION_ARGUMENTS_FIRST_TOKEN = '(';\n const HEX_FIRST_TOKEN = '#';\n return (inputString) => {\n const terms = [];\n while (inputString.length) {\n inputString = inputString.trim();\n if (IS_EXPRESSION_END_RE.test(inputString)) {\n break;\n }\n else if (inputString[0] === FUNCTION_ARGUMENTS_FIRST_TOKEN) {\n const { nodes, remainingInput } = parseFunctionArguments(inputString);\n inputString = remainingInput;\n terms.push({\n type: 'function',\n name: { type: 'ident', value: 'calc' },\n arguments: nodes\n });\n }\n else if (IS_IDENT_RE.test(inputString)) {\n const identParseResult = parseIdent(inputString);\n const identNode = identParseResult.nodes[0];\n inputString = identParseResult.remainingInput;\n if (inputString[0] === FUNCTION_ARGUMENTS_FIRST_TOKEN) {\n const { nodes, remainingInput } = parseFunctionArguments(inputString);\n terms.push({ type: 'function', name: identNode, arguments: nodes });\n inputString = remainingInput;\n }\n else {\n terms.push(identNode);\n }\n }\n else if (IS_OPERATOR_RE.test(inputString)) {\n // Operators are always a single character, so just pluck them out:\n terms.push({ type: 'operator', value: inputString[0] });\n inputString = inputString.slice(1);\n }\n else {\n const { nodes, remainingInput } = inputString[0] === HEX_FIRST_TOKEN ?\n parseHex(inputString) :\n parseNumber(inputString);\n // The remaining string may not have had any meaningful content. Exit\n // early if this is the case:\n if (nodes.length === 0) {\n break;\n }\n terms.push(nodes[0]);\n inputString = remainingInput;\n }\n }\n return { nodes: [{ type: 'expression', terms }], remainingInput: inputString };\n };\n})();\n/**\n * An ident is something like a function name or the keyword \"auto\".\n */\nconst parseIdent = (() => {\n const NOT_IDENT_RE = /[^a-z0-9_\\-\\u0240-\\uffff]/i;\n return (inputString) => {\n const match = inputString.match(NOT_IDENT_RE);\n const ident = match == null ? inputString : inputString.substr(0, match.index);\n const remainingInput = match == null ? '' : inputString.substr(match.index);\n return { nodes: [{ type: 'ident', value: ident }], remainingInput };\n };\n})();\n/**\n * Parses a number. A number value can be expressed with an integer or\n * non-integer syntax, and usually includes a unit (but does not strictly\n * require one for our purposes).\n */\nconst parseNumber = (() => {\n // @see https://www.w3.org/TR/css-syntax/#number-token-diagram\n const VALUE_RE = /[\\+\\-]?(\\d+[\\.]\\d+|\\d+|[\\.]\\d+)([eE][\\+\\-]?\\d+)?/;\n const UNIT_RE = /^[a-z%]+/i;\n const ALLOWED_UNITS = /^(m|mm|cm|rad|deg|[%])$/;\n return (inputString) => {\n const valueMatch = inputString.match(VALUE_RE);\n const value = valueMatch == null ? '0' : valueMatch[0];\n inputString = value == null ? inputString : inputString.slice(value.length);\n const unitMatch = inputString.match(UNIT_RE);\n let unit = unitMatch != null && unitMatch[0] !== '' ? unitMatch[0] : null;\n const remainingInput = unitMatch == null ? inputString : inputString.slice(unit.length);\n if (unit != null && !ALLOWED_UNITS.test(unit)) {\n unit = null;\n }\n return {\n nodes: [{\n type: 'number',\n number: parseFloat(value) || 0,\n unit: unit\n }],\n remainingInput\n };\n };\n})();\n/**\n * Parses a hexidecimal-encoded color in 3, 6 or 8 digit form.\n */\nconst parseHex = (() => {\n // TODO(cdata): right now we don't actually enforce the number of digits\n const HEX_RE = /^[a-f0-9]*/i;\n return (inputString) => {\n inputString = inputString.slice(1).trim();\n const hexMatch = inputString.match(HEX_RE);\n const nodes = hexMatch == null ? [] : [{ type: 'hex', value: hexMatch[0] }];\n return {\n nodes,\n remainingInput: hexMatch == null ? inputString :\n inputString.slice(hexMatch[0].length)\n };\n };\n})();\n/**\n * Parses arguments passed to a function invokation (e.g., the expressions\n * within a matched set of parens).\n */\nconst parseFunctionArguments = (inputString) => {\n const expressionNodes = [];\n // Consume the opening paren\n inputString = inputString.slice(1).trim();\n while (inputString.length) {\n const expressionParseResult = parseExpression(inputString);\n expressionNodes.push(expressionParseResult.nodes[0]);\n inputString = expressionParseResult.remainingInput.trim();\n if (inputString[0] === ',') {\n inputString = inputString.slice(1).trim();\n }\n else if (inputString[0] === ')') {\n // Consume the closing paren and stop parsing\n inputString = inputString.slice(1);\n break;\n }\n }\n return { nodes: expressionNodes, remainingInput: inputString };\n};\nconst $visitedTypes = Symbol('visitedTypes');\n/**\n * An ASTWalker walks an array of ASTs such as the type produced by\n * parseExpressions and invokes a callback for a configured set of nodes that\n * the user wishes to \"visit\" during the walk.\n */\nclass ASTWalker {\n constructor(visitedTypes) {\n this[$visitedTypes] = visitedTypes;\n }\n /**\n * Walk the given set of ASTs, and invoke the provided callback for nodes that\n * match the filtered set that the ASTWalker was constructed with.\n */\n walk(ast, callback) {\n const remaining = ast.slice();\n while (remaining.length) {\n const next = remaining.shift();\n if (this[$visitedTypes].indexOf(next.type) > -1) {\n callback(next);\n }\n switch (next.type) {\n case 'expression':\n remaining.unshift(...next.terms);\n break;\n case 'function':\n remaining.unshift(next.name, ...next.arguments);\n break;\n }\n }\n }\n}\nconst ZERO = Object.freeze({ type: 'number', number: 0, unit: null });\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Ensures that a given number is expressed in radians. If the number is already\n * in radians, does nothing. If the value is in degrees, converts it to radians.\n * If the value has no specified unit, the unit is assumed to be radians. If the\n * value is not in radians or degrees, the value is resolved as 0 radians.\n *\n * Also accepts a second argument that is a default value to use if the input\n * numberNode number is NaN or Infinity.\n */\nconst degreesToRadians = (numberNode, fallbackRadianValue = 0) => {\n let { number, unit } = numberNode;\n if (!isFinite(number)) {\n number = fallbackRadianValue;\n unit = 'rad';\n }\n else if (numberNode.unit === 'rad' || numberNode.unit == null) {\n return numberNode;\n }\n const valueIsDegrees = unit === 'deg' && number != null;\n const value = valueIsDegrees ? number : 0;\n const radians = value * Math.PI / 180;\n return { type: 'number', number: radians, unit: 'rad' };\n};\n/**\n * Converts a given length to meters. Currently supported input units are\n * meters, centimeters and millimeters.\n *\n * Also accepts a second argument that is a default value to use if the input\n * numberNode number is NaN or Infinity.\n */\nconst lengthToBaseMeters = (numberNode, fallbackMeterValue = 0) => {\n let { number, unit } = numberNode;\n if (!isFinite(number)) {\n number = fallbackMeterValue;\n unit = 'm';\n }\n else if (numberNode.unit === 'm') {\n return numberNode;\n }\n let scale;\n switch (unit) {\n default:\n scale = 1;\n break;\n case 'cm':\n scale = 1 / 100;\n break;\n case 'mm':\n scale = 1 / 1000;\n break;\n }\n const value = scale * number;\n return { type: 'number', number: value, unit: 'm' };\n};\n/**\n * Normalizes the unit of a given input number so that it is expressed in a\n * preferred unit. For length nodes, the return value will be expressed in\n * meters. For angle nodes, the return value will be expressed in radians.\n *\n * Also takes a fallback number that is used when the number value is not a\n * valid number or when the unit of the given number cannot be normalized.\n */\nconst normalizeUnit = (() => {\n const identity = (node) => node;\n const unitNormalizers = {\n 'rad': identity,\n 'deg': degreesToRadians,\n 'm': identity,\n 'mm': lengthToBaseMeters,\n 'cm': lengthToBaseMeters\n };\n return (node, fallback = ZERO) => {\n if (!isFinite(node.number)) {\n node.number = fallback.number;\n node.unit = fallback.unit;\n }\n const { unit } = node;\n if (unit == null) {\n return node;\n }\n const normalize = unitNormalizers[unit];\n if (normalize == null) {\n return fallback;\n }\n return normalize(node);\n };\n})();\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The Hotspot object is a reference-counted slot. If decrement() returns true,\n * it should be removed from the tree so it can be garbage-collected.\n */\nclass Hotspot extends CSS2DObject {\n constructor(config) {\n super(document.createElement('div'));\n this.normal = new Vector3(0, 1, 0);\n this.initialized = false;\n this.referenceCount = 1;\n this.pivot = document.createElement('div');\n this.slot = document.createElement('slot');\n this.element.classList.add('annotation-wrapper');\n this.slot.name = config.name;\n this.element.appendChild(this.pivot);\n this.pivot.appendChild(this.slot);\n this.updatePosition(config.position);\n this.updateNormal(config.normal);\n }\n get facingCamera() {\n return !this.element.classList.contains('hide');\n }\n /**\n * Sets the hotspot to be in the highly visible foreground state.\n */\n show() {\n if (!this.facingCamera || !this.initialized) {\n this.updateVisibility(true);\n }\n }\n /**\n * Sets the hotspot to be in the diminished background state.\n */\n hide() {\n if (this.facingCamera || !this.initialized) {\n this.updateVisibility(false);\n }\n }\n /**\n * Call this when adding elements to the same slot to keep track.\n */\n increment() {\n this.referenceCount++;\n }\n /**\n * Call this when removing elements from the slot; returns true when the slot\n * is unused.\n */\n decrement() {\n if (this.referenceCount > 0) {\n --this.referenceCount;\n }\n return this.referenceCount === 0;\n }\n /**\n * Change the position of the hotspot to the input string, in the same format\n * as the data-position attribute.\n */\n updatePosition(position) {\n if (position == null)\n return;\n const positionNodes = parseExpressions(position)[0].terms;\n for (let i = 0; i < 3; ++i) {\n this.position.setComponent(i, normalizeUnit(positionNodes[i]).number);\n }\n this.updateMatrixWorld();\n }\n /**\n * Change the hotspot's normal to the input string, in the same format as the\n * data-normal attribute.\n */\n updateNormal(normal) {\n if (normal == null)\n return;\n const normalNodes = parseExpressions(normal)[0].terms;\n for (let i = 0; i < 3; ++i) {\n this.normal.setComponent(i, normalizeUnit(normalNodes[i]).number);\n }\n }\n orient(radians) {\n this.pivot.style.transform = `rotate(${radians}rad)`;\n }\n updateVisibility(show) {\n // NOTE: IE11 doesn't support a second arg for classList.toggle\n if (show) {\n this.element.classList.remove('hide');\n }\n else {\n this.element.classList.add('hide');\n }\n // NOTE: ShadyDOM doesn't support slot.assignedElements, otherwise we could\n // use that here.\n this.slot.assignedNodes().forEach((node) => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node;\n // Visibility attribute can be configured per-node in the hotspot:\n const visibilityAttribute = element.dataset.visibilityAttribute;\n if (visibilityAttribute != null) {\n const attributeName = `data-${visibilityAttribute}`;\n // NOTE: IE11 doesn't support toggleAttribute\n if (show) {\n element.setAttribute(attributeName, '');\n }\n else {\n element.removeAttribute(attributeName);\n }\n }\n element.dispatchEvent(new CustomEvent('hotspot-visibility', {\n detail: {\n visible: show,\n },\n }));\n });\n this.initialized = true;\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Gets a scale value to perform inverse quantization of a vertex value\n * Reference:\n * https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data\n * @param buffer A gltf vertex buffer\n * @returns A scale value based on KHR_mesh_quantization or 1 if the buffer is\n * not quantized.\n */\nconst getNormalizedComponentScale = (buffer) => {\n if (!buffer.normalized) {\n return 1;\n }\n const array = buffer.array;\n if (array instanceof Int8Array) {\n return 1 / 127;\n }\n else if (array instanceof Uint8Array) {\n return 1 / 255;\n }\n else if (array instanceof Int16Array) {\n return 1 / 32767;\n }\n else if (array instanceof Uint16Array) {\n return 1 / 65535;\n }\n return 1;\n};\n/**\n * Performs a reduction across all the vertices of the input model and all its\n * children. The supplied function takes the reduced value and a vertex and\n * returns the newly reduced value. The value is initialized as zero.\n *\n * Adapted from Three.js, @see https://github.com/mrdoob/three.js/blob/7e0a78beb9317e580d7fa4da9b5b12be051c6feb/src/math/Box3.js#L241\n */\nconst reduceVertices = (model, func, initialValue) => {\n let value = initialValue;\n const vertex = new Vector3();\n model.traverseVisible((object) => {\n let i, l;\n object.updateWorldMatrix(false, false);\n const geometry = object.geometry;\n if (geometry !== undefined) {\n if (geometry.isGeometry) {\n const vertices = geometry.vertices;\n for (i = 0, l = vertices.length; i < l; i++) {\n vertex.copy(vertices[i]);\n if (object.isSkinnedMesh) {\n object.boneTransform(i, vertex);\n }\n else {\n vertex.applyMatrix4(object.matrixWorld);\n }\n value = func(value, vertex);\n }\n }\n else if (geometry.isBufferGeometry) {\n const { position } = geometry.attributes;\n if (position !== undefined) {\n const scale = getNormalizedComponentScale(position);\n for (i = 0, l = position.count; i < l; i++) {\n vertex.fromBufferAttribute(position, i);\n vertex.multiplyScalar(scale);\n if (object.isSkinnedMesh) {\n object.boneTransform(i, vertex);\n }\n else {\n vertex.applyMatrix4(object.matrixWorld);\n }\n value = func(value, vertex);\n }\n }\n }\n }\n });\n return value;\n};\n\n/**\n * Two pass Gaussian blur filter (horizontal and vertical blur shaders)\n * - see http://www.cake23.de/traveling-wavefronts-lit-up.html\n *\n * - 9 samples per pass\n * - standard deviation 2.7\n * - \"h\" and \"v\" parameters should be set to \"1 / width\" and \"1 / height\"\n */\n\nconst HorizontalBlurShader = {\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'h': { value: 1.0 / 512.0 }\n\n\t},\n\n\tvertexShader: /* glsl */`\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float h;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}`\n\n};\n\n/**\n * Two pass Gaussian blur filter (horizontal and vertical blur shaders)\n * - see http://www.cake23.de/traveling-wavefronts-lit-up.html\n *\n * - 9 samples per pass\n * - standard deviation 2.7\n * - \"h\" and \"v\" parameters should be set to \"1 / width\" and \"1 / height\"\n */\n\nconst VerticalBlurShader = {\n\n\tuniforms: {\n\n\t\t'tDiffuse': { value: null },\n\t\t'v': { value: 1.0 / 512.0 }\n\n\t},\n\n\tvertexShader: /* glsl */`\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`,\n\n\tfragmentShader: /* glsl */`\n\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float v;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 sum = vec4( 0.0 );\n\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n\t\t\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n\t\t\tgl_FragColor = sum;\n\n\t\t}`\n\n};\n\nconst _lut = [];\n\nfor ( let i = 0; i < 256; i ++ ) {\n\n\t_lut[ i ] = ( i < 16 ? '0' : '' ) + ( i ).toString( 16 );\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n/* @license\n * Copyright 2022 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The softness [0, 1] of the shadow is mapped to a resolution between\n// 2^LOG_MAX_RESOLUTION and 2^LOG_MIN_RESOLUTION.\nconst LOG_MAX_RESOLUTION = 9;\nconst LOG_MIN_RESOLUTION = 6;\n// Animated models are not in general contained in their bounding box, as this\n// is calculated only for their resting pose. We create a cubic shadow volume\n// for animated models sized to their largest bounding box dimesion multiplied\n// by this scale factor.\nconst ANIMATION_SCALING = 2;\n// Since hard shadows are not lightened by blurring and depth, set a lower\n// default intensity to make them more perceptually similar to the intensity of\n// the soft shadows.\nconst DEFAULT_HARD_INTENSITY = 0.3;\n/**\n * The Shadow class creates a shadow that fits a given scene and follows a\n * target. This shadow will follow the scene without any updates needed so long\n * as the shadow and scene are both parented to the same object (call it the\n * scene) and this scene is passed as the target parameter to the shadow's\n * constructor. We also must constrain the scene to motion within the horizontal\n * plane and call the setRotation() method whenever the scene's Y-axis rotation\n * changes. For motion outside of the horizontal plane, this.needsUpdate must be\n * set to true.\n *\n * The softness of the shadow is controlled by changing its resolution, making\n * softer shadows faster, but less precise.\n */\nclass Shadow extends Object3D {\n constructor(scene, softness, side) {\n super();\n this.camera = new OrthographicCamera();\n // private cameraHelper = new CameraHelper(this.camera);\n this.renderTarget = null;\n this.renderTargetBlur = null;\n this.depthMaterial = new MeshDepthMaterial();\n this.horizontalBlurMaterial = new ShaderMaterial(HorizontalBlurShader);\n this.verticalBlurMaterial = new ShaderMaterial(VerticalBlurShader);\n this.intensity = 0;\n this.softness = 1;\n this.boundingBox = new Box3;\n this.size = new Vector3;\n this.maxDimension = 0;\n this.isAnimated = false;\n this.needsUpdate = false;\n const { camera } = this;\n camera.rotation.x = Math.PI / 2;\n camera.left = -0.5;\n camera.right = 0.5;\n camera.bottom = -0.5;\n camera.top = 0.5;\n this.add(camera);\n // this.add(this.cameraHelper);\n // this.cameraHelper.updateMatrixWorld = function() {\n // this.matrixWorld = this.camera.matrixWorld;\n // };\n const plane = new PlaneGeometry();\n const shadowMaterial = new MeshBasicMaterial({\n // color: new Color(1, 0, 0),\n opacity: 1,\n transparent: true,\n side: BackSide,\n });\n this.floor = new Mesh(plane, shadowMaterial);\n this.floor.userData.shadow = true;\n camera.add(this.floor);\n // the plane onto which to blur the texture\n this.blurPlane = new Mesh(plane);\n this.blurPlane.visible = false;\n camera.add(this.blurPlane);\n scene.target.add(this);\n // like MeshDepthMaterial, but goes from black to transparent\n this.depthMaterial.onBeforeCompile = function (shader) {\n shader.fragmentShader = shader.fragmentShader.replace('gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );', 'gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * opacity );');\n };\n this.horizontalBlurMaterial.depthTest = false;\n this.verticalBlurMaterial.depthTest = false;\n this.setScene(scene, softness, side);\n }\n /**\n * Update the shadow's size and position for a new scene. Softness is also\n * needed, as this controls the shadow's resolution.\n */\n setScene(scene, softness, side) {\n const { boundingBox, size, rotation, position } = this;\n this.isAnimated = scene.animationNames.length > 0;\n this.boundingBox.copy(scene.boundingBox);\n this.size.copy(scene.size);\n this.maxDimension = Math.max(size.x, size.y, size.z) *\n (this.isAnimated ? ANIMATION_SCALING : 1);\n this.boundingBox.getCenter(position);\n if (side === 'back') {\n const { min, max } = boundingBox;\n [min.y, min.z] = [min.z, min.y];\n [max.y, max.z] = [max.z, max.y];\n [size.y, size.z] = [size.z, size.y];\n rotation.x = Math.PI / 2;\n rotation.y = Math.PI;\n }\n else {\n rotation.x = 0;\n rotation.y = 0;\n }\n if (this.isAnimated) {\n const minY = boundingBox.min.y;\n const maxY = boundingBox.max.y;\n size.y = this.maxDimension;\n boundingBox.expandByVector(size.subScalar(this.maxDimension).multiplyScalar(-0.5));\n boundingBox.min.y = minY;\n boundingBox.max.y = maxY;\n size.set(this.maxDimension, maxY - minY, this.maxDimension);\n }\n if (side === 'bottom') {\n position.y = boundingBox.min.y;\n }\n else {\n position.z = boundingBox.min.y;\n }\n this.setSoftness(softness);\n }\n /**\n * Update the shadow's resolution based on softness (between 0 and 1). Should\n * not be called frequently, as this results in reallocation.\n */\n setSoftness(softness) {\n this.softness = softness;\n const { size, camera } = this;\n const scaleY = (this.isAnimated ? ANIMATION_SCALING : 1);\n const resolution = scaleY *\n Math.pow(2, LOG_MAX_RESOLUTION -\n softness * (LOG_MAX_RESOLUTION - LOG_MIN_RESOLUTION));\n this.setMapSize(resolution);\n const softFar = size.y / 2;\n const hardFar = size.y * scaleY;\n camera.near = 0;\n camera.far = lerp(hardFar, softFar, softness);\n // we have co-opted opacity to scale the depth to clip\n this.depthMaterial.opacity = 1.0 / softness;\n camera.updateProjectionMatrix();\n // this.cameraHelper.update();\n this.setIntensity(this.intensity);\n this.setOffset(0);\n }\n /**\n * Lower-level version of the above function.\n */\n setMapSize(maxMapSize) {\n const { size } = this;\n if (this.isAnimated) {\n maxMapSize *= ANIMATION_SCALING;\n }\n const baseWidth = Math.floor(size.x > size.z ? maxMapSize : maxMapSize * size.x / size.z);\n const baseHeight = Math.floor(size.x > size.z ? maxMapSize * size.z / size.x : maxMapSize);\n // width of blur filter in pixels (not adjustable)\n const TAP_WIDTH = 10;\n const width = TAP_WIDTH + baseWidth;\n const height = TAP_WIDTH + baseHeight;\n if (this.renderTarget != null &&\n (this.renderTarget.width !== width ||\n this.renderTarget.height !== height)) {\n this.renderTarget.dispose();\n this.renderTarget = null;\n this.renderTargetBlur.dispose();\n this.renderTargetBlur = null;\n }\n if (this.renderTarget == null) {\n const params = { format: RGBAFormat };\n this.renderTarget = new WebGLRenderTarget(width, height, params);\n this.renderTargetBlur = new WebGLRenderTarget(width, height, params);\n this.floor.material.map =\n this.renderTarget.texture;\n }\n // These pads account for the softening radius around the shadow.\n this.camera.scale.set(size.x * (1 + TAP_WIDTH / baseWidth), size.z * (1 + TAP_WIDTH / baseHeight), 1);\n this.needsUpdate = true;\n }\n /**\n * Set the shadow's intensity (0 to 1), which is just its opacity. Turns off\n * shadow rendering if zero.\n */\n setIntensity(intensity) {\n this.intensity = intensity;\n if (intensity > 0) {\n this.visible = true;\n this.floor.visible = true;\n this.floor.material.opacity = intensity *\n lerp(DEFAULT_HARD_INTENSITY, 1, this.softness * this.softness);\n }\n else {\n this.visible = false;\n this.floor.visible = false;\n }\n }\n getIntensity() {\n return this.intensity;\n }\n /**\n * An offset can be specified to move the\n * shadow vertically relative to the bottom of the scene. Positive is up, so\n * values are generally negative. A small offset keeps our shadow from\n * z-fighting with any baked-in shadow plane.\n */\n setOffset(offset) {\n this.floor.position.z = -offset + 0.001 * this.maxDimension;\n }\n render(renderer, scene) {\n // this.cameraHelper.visible = false;\n // force the depthMaterial to everything\n scene.overrideMaterial = this.depthMaterial;\n // set renderer clear alpha\n const initialClearAlpha = renderer.getClearAlpha();\n renderer.setClearAlpha(0);\n this.floor.visible = false;\n // disable XR for offscreen rendering\n const xrEnabled = renderer.xr.enabled;\n renderer.xr.enabled = false;\n // render to the render target to get the depths\n const oldRenderTarget = renderer.getRenderTarget();\n renderer.setRenderTarget(this.renderTarget);\n renderer.render(scene, this.camera);\n // and reset the override material\n scene.overrideMaterial = null;\n this.floor.visible = true;\n this.blurShadow(renderer);\n // reset and render the normal scene\n renderer.xr.enabled = xrEnabled;\n renderer.setRenderTarget(oldRenderTarget);\n renderer.setClearAlpha(initialClearAlpha);\n // this.cameraHelper.visible = true;\n }\n blurShadow(renderer) {\n const { camera, horizontalBlurMaterial, verticalBlurMaterial, renderTarget, renderTargetBlur, blurPlane } = this;\n blurPlane.visible = true;\n // blur horizontally and draw in the renderTargetBlur\n blurPlane.material = horizontalBlurMaterial;\n horizontalBlurMaterial.uniforms.h.value = 1 / this.renderTarget.width;\n horizontalBlurMaterial.uniforms.tDiffuse.value = this.renderTarget.texture;\n renderer.setRenderTarget(renderTargetBlur);\n renderer.render(blurPlane, camera);\n // blur vertically and draw in the main renderTarget\n blurPlane.material = verticalBlurMaterial;\n verticalBlurMaterial.uniforms.v.value = 1 / this.renderTarget.height;\n verticalBlurMaterial.uniforms.tDiffuse.value =\n this.renderTargetBlur.texture;\n renderer.setRenderTarget(renderTarget);\n renderer.render(blurPlane, camera);\n blurPlane.visible = false;\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst MIN_SHADOW_RATIO = 100;\nconst view = new Vector3();\nconst target = new Vector3();\nconst normalWorld = new Vector3();\nconst raycaster = new Raycaster();\nconst vector3$2 = new Vector3();\nconst ndc = new Vector2();\n/**\n * A THREE.Scene object that takes a Model and CanvasHTMLElement and\n * constructs a framed scene based off of the canvas dimensions.\n * Provides lights and cameras to be used in a renderer.\n */\nclass ModelScene extends Scene {\n constructor({ canvas, element, width, height }) {\n super();\n this.context = null;\n this.annotationRenderer = new CSS2DRenderer();\n this.schemaElement = document.createElement('script');\n this.width = 1;\n this.height = 1;\n this.aspect = 1;\n this.renderCount = 0;\n this.externalRenderer = null;\n // These default camera values are never used, as they are reset once the\n // model is loaded and framing is computed.\n this.camera = new PerspectiveCamera(45, 1, 0.1, 100);\n this.xrCamera = null;\n this.url = null;\n this.target = new Object3D();\n this.modelContainer = new Object3D();\n this.animationNames = [];\n this.boundingBox = new Box3();\n this.boundingSphere = new Sphere();\n this.size = new Vector3();\n this.idealAspect = 0;\n this.framedFoVDeg = 0;\n this.shadow = null;\n this.shadowIntensity = 0;\n this.shadowSoftness = 1;\n this.bakedShadows = new Set();\n this.exposure = 1;\n this.canScale = true;\n this.tightBounds = false;\n this.isDirty = false;\n this.goalTarget = new Vector3();\n this.targetDamperX = new Damper();\n this.targetDamperY = new Damper();\n this.targetDamperZ = new Damper();\n this._currentGLTF = null;\n this.cancelPendingSourceChange = null;\n this.animationsByName = new Map();\n this.currentAnimationAction = null;\n this.name = 'ModelScene';\n this.element = element;\n this.canvas = canvas;\n // These default camera values are never used, as they are reset once the\n // model is loaded and framing is computed.\n this.camera = new PerspectiveCamera(45, 1, 0.1, 100);\n this.camera.name = 'MainCamera';\n this.add(this.target);\n this.setSize(width, height);\n this.target.name = 'Target';\n this.modelContainer.name = 'ModelContainer';\n this.target.add(this.modelContainer);\n this.mixer = new AnimationMixer(this.modelContainer);\n const { domElement } = this.annotationRenderer;\n const { style } = domElement;\n style.display = 'none';\n style.pointerEvents = 'none';\n style.position = 'absolute';\n style.top = '0';\n this.element.shadowRoot.querySelector('.default').appendChild(domElement);\n this.schemaElement.setAttribute('type', 'application/ld+json');\n }\n /**\n * Function to create the context lazily, as when there is only one\n * element, the renderer's 3D context can be displayed\n * directly. This extra context is necessary to copy the renderings into when\n * there are more than one.\n */\n createContext() {\n this.context = this.canvas.getContext('2d');\n }\n getCamera() {\n return this.xrCamera != null ? this.xrCamera : this.camera;\n }\n queueRender() {\n this.isDirty = true;\n }\n shouldRender() {\n return this.isDirty;\n }\n hasRendered() {\n this.isDirty = false;\n }\n /**\n * Pass in a THREE.Object3D to be controlled\n * by this model.\n */\n async setObject(model) {\n this.reset();\n this.modelContainer.add(model);\n await this.setupScene();\n }\n /**\n * Sets the model via URL.\n */\n async setSource(url, progressCallback = () => { }) {\n if (!url || url === this.url) {\n progressCallback(1);\n return;\n }\n this.reset();\n this.url = url;\n if (this.externalRenderer != null) {\n const framingInfo = await this.externalRenderer.load(progressCallback);\n this.boundingSphere.radius = framingInfo.framedRadius;\n this.idealAspect = framingInfo.fieldOfViewAspect;\n this.dispatchEvent({ type: 'model-load', url: this.url });\n return;\n }\n // If we have pending work due to a previous source change in progress,\n // cancel it so that we do not incur a race condition:\n if (this.cancelPendingSourceChange != null) {\n this.cancelPendingSourceChange();\n this.cancelPendingSourceChange = null;\n }\n let gltf;\n try {\n gltf = await new Promise(async (resolve, reject) => {\n this.cancelPendingSourceChange = () => reject();\n try {\n const result = await this.element[$renderer].loader.load(url, this.element, progressCallback);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n });\n }\n catch (error) {\n if (error == null) {\n // Loading was cancelled, so silently return\n return;\n }\n throw error;\n }\n this.reset();\n this.url = url;\n this._currentGLTF = gltf;\n if (gltf != null) {\n this.modelContainer.add(gltf.scene);\n }\n const { animations } = gltf;\n const animationsByName = new Map();\n const animationNames = [];\n for (const animation of animations) {\n animationsByName.set(animation.name, animation);\n animationNames.push(animation.name);\n }\n this.animations = animations;\n this.animationsByName = animationsByName;\n this.animationNames = animationNames;\n await this.setupScene();\n }\n async setupScene() {\n this.updateBoundingBox();\n await this.updateFraming();\n this.updateShadow();\n this.setShadowIntensity(this.shadowIntensity);\n this.dispatchEvent({ type: 'model-load', url: this.url });\n }\n reset() {\n this.url = null;\n this.queueRender();\n if (this.shadow != null) {\n this.shadow.setIntensity(0);\n }\n this.bakedShadows.clear();\n const gltf = this._currentGLTF;\n // Remove all current children\n if (gltf != null) {\n for (const child of this.modelContainer.children) {\n this.modelContainer.remove(child);\n }\n gltf.dispose();\n this._currentGLTF = null;\n }\n if (this.currentAnimationAction != null) {\n this.currentAnimationAction.stop();\n this.currentAnimationAction = null;\n }\n this.mixer.stopAllAction();\n this.mixer.uncacheRoot(this);\n }\n get currentGLTF() {\n return this._currentGLTF;\n }\n /**\n * Updates the ModelScene for a new container size in CSS pixels.\n */\n setSize(width, height) {\n if (this.width === width && this.height === height) {\n return;\n }\n this.width = Math.max(width, 1);\n this.height = Math.max(height, 1);\n this.annotationRenderer.setSize(width, height);\n this.aspect = this.width / this.height;\n if (this.externalRenderer != null) {\n const dpr = resolveDpr();\n this.externalRenderer.resize(width * dpr, height * dpr);\n }\n this.queueRender();\n }\n markBakedShadow(mesh) {\n mesh.userData.shadow = true;\n this.bakedShadows.add(mesh);\n }\n unmarkBakedShadow(mesh) {\n mesh.userData.shadow = false;\n mesh.visible = true;\n this.bakedShadows.delete(mesh);\n this.boundingBox.expandByObject(mesh);\n }\n findBakedShadows(group) {\n const boundingBox = new Box3();\n group.traverse((object) => {\n const mesh = object;\n if (!mesh.isMesh) {\n return;\n }\n const material = mesh.material;\n if (!material.transparent) {\n return;\n }\n boundingBox.setFromObject(mesh);\n const size = boundingBox.getSize(vector3$2);\n const minDim = Math.min(size.x, size.y, size.z);\n const maxDim = Math.max(size.x, size.y, size.z);\n if (maxDim < MIN_SHADOW_RATIO * minDim) {\n return;\n }\n this.markBakedShadow(mesh);\n });\n }\n checkBakedShadows() {\n const { min, max } = this.boundingBox;\n const shadowBox = new Box3();\n this.boundingBox.getSize(this.size);\n for (const mesh of this.bakedShadows) {\n shadowBox.setFromObject(mesh);\n if (shadowBox.min.y < min.y + this.size.y / MIN_SHADOW_RATIO &&\n shadowBox.min.x <= min.x && shadowBox.max.x >= max.x &&\n shadowBox.min.z <= min.z && shadowBox.max.z >= max.z) {\n // floor shadow\n continue;\n }\n if (shadowBox.min.z < min.z + this.size.z / MIN_SHADOW_RATIO &&\n shadowBox.min.x <= min.x && shadowBox.max.x >= max.x &&\n shadowBox.min.y <= min.y && shadowBox.max.y >= max.y) {\n // wall shadow\n continue;\n }\n this.unmarkBakedShadow(mesh);\n }\n }\n updateBoundingBox() {\n this.target.remove(this.modelContainer);\n this.findBakedShadows(this.modelContainer);\n if (this.tightBounds === true) {\n const bound = (box, vertex) => {\n return box.expandByPoint(vertex);\n };\n this.setBakedShadowVisibility(false);\n this.boundingBox = reduceVertices(this.modelContainer, bound, new Box3());\n // If there's nothing but the baked shadow, then it's not a baked shadow.\n if (this.boundingBox.isEmpty()) {\n this.setBakedShadowVisibility(true);\n this.bakedShadows.forEach((mesh) => this.unmarkBakedShadow(mesh));\n this.boundingBox =\n reduceVertices(this.modelContainer, bound, new Box3());\n }\n this.checkBakedShadows();\n this.setBakedShadowVisibility();\n }\n else {\n this.boundingBox.setFromObject(this.modelContainer);\n }\n this.boundingBox.getSize(this.size);\n this.target.add(this.modelContainer);\n }\n /**\n * Calculates the boundingSphere and idealAspect that allows the 3D\n * object to be framed tightly in a 2D window of any aspect ratio without\n * clipping at any camera orbit. The camera's center target point can be\n * optionally specified. If no center is specified, it defaults to the center\n * of the bounding box, which means asymmetric models will tend to be tight on\n * one side instead of both. Proper choice of center can correct this.\n */\n async updateFraming() {\n this.target.remove(this.modelContainer);\n this.setBakedShadowVisibility(false);\n const { center } = this.boundingSphere;\n if (this.tightBounds === true) {\n this.element.requestUpdate('cameraTarget');\n await this.element.updateComplete;\n center.copy(this.getTarget());\n }\n else {\n this.boundingBox.getCenter(center);\n }\n const radiusSquared = (value, vertex) => {\n return Math.max(value, center.distanceToSquared(vertex));\n };\n this.boundingSphere.radius =\n Math.sqrt(reduceVertices(this.modelContainer, radiusSquared, 0));\n const horizontalTanFov = (value, vertex) => {\n vertex.sub(center);\n const radiusXZ = Math.sqrt(vertex.x * vertex.x + vertex.z * vertex.z);\n return Math.max(value, radiusXZ / (this.idealCameraDistance() - Math.abs(vertex.y)));\n };\n this.idealAspect =\n reduceVertices(this.modelContainer, horizontalTanFov, 0) /\n Math.tan((this.framedFoVDeg / 2) * Math.PI / 180);\n this.setBakedShadowVisibility();\n this.target.add(this.modelContainer);\n }\n setBakedShadowVisibility(visible = this.shadowIntensity <= 0) {\n for (const shadow of this.bakedShadows) {\n shadow.visible = visible;\n }\n }\n idealCameraDistance() {\n const halfFovRad = (this.framedFoVDeg / 2) * Math.PI / 180;\n return this.boundingSphere.radius / Math.sin(halfFovRad);\n }\n /**\n * Set's the framedFieldOfView based on the aspect ratio of the window in\n * order to keep the model fully visible at any camera orientation.\n */\n adjustedFoV(fovDeg) {\n const vertical = Math.tan((fovDeg / 2) * Math.PI / 180) *\n Math.max(1, this.idealAspect / this.aspect);\n return 2 * Math.atan(vertical) * 180 / Math.PI;\n }\n getNDC(clientX, clientY) {\n if (this.xrCamera != null) {\n ndc.set(clientX / window.screen.width, clientY / window.screen.height);\n }\n else {\n const rect = this.element.getBoundingClientRect();\n ndc.set((clientX - rect.x) / this.width, (clientY - rect.y) / this.height);\n }\n ndc.multiplyScalar(2).subScalar(1);\n ndc.y *= -1;\n return ndc;\n }\n /**\n * Returns the size of the corresponding canvas element.\n */\n getSize() {\n return { width: this.width, height: this.height };\n }\n /**\n * Sets the point in model coordinates the model should orbit/pivot around.\n */\n setTarget(modelX, modelY, modelZ) {\n this.goalTarget.set(-modelX, -modelY, -modelZ);\n }\n /**\n * Set the decay time of, affects the speed of target transitions.\n */\n setTargetDamperDecayTime(decayMilliseconds) {\n this.targetDamperX.setDecayTime(decayMilliseconds);\n this.targetDamperY.setDecayTime(decayMilliseconds);\n this.targetDamperZ.setDecayTime(decayMilliseconds);\n }\n /**\n * Gets the point in model coordinates the model should orbit/pivot around.\n */\n getTarget() {\n return vector3$2.copy(this.goalTarget).multiplyScalar(-1);\n }\n /**\n * Shifts the model to the target point immediately instead of easing in.\n */\n jumpToGoal() {\n this.updateTarget(SETTLING_TIME);\n }\n /**\n * This should be called every frame with the frame delta to cause the target\n * to transition to its set point.\n */\n updateTarget(delta) {\n const goal = this.goalTarget;\n const target = this.target.position;\n if (!goal.equals(target)) {\n const normalization = this.boundingSphere.radius / 10;\n let { x, y, z } = target;\n x = this.targetDamperX.update(x, goal.x, delta, normalization);\n y = this.targetDamperY.update(y, goal.y, delta, normalization);\n z = this.targetDamperZ.update(z, goal.z, delta, normalization);\n this.target.position.set(x, y, z);\n this.target.updateMatrixWorld();\n this.queueRender();\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Yaw the +z (front) of the model toward the indicated world coordinates.\n */\n pointTowards(worldX, worldZ) {\n const { x, z } = this.position;\n this.yaw = Math.atan2(worldX - x, worldZ - z);\n }\n /**\n * Yaw is the scene's orientation about the y-axis, around the rotation\n * center.\n */\n set yaw(radiansY) {\n this.rotation.y = radiansY;\n this.queueRender();\n }\n get yaw() {\n return this.rotation.y;\n }\n set animationTime(value) {\n this.mixer.setTime(value);\n this.queueShadowRender();\n }\n get animationTime() {\n if (this.currentAnimationAction != null) {\n const loopCount = Math.max(this.currentAnimationAction._loopCount, 0);\n if (this.currentAnimationAction.loop === LoopPingPong &&\n (loopCount & 1) === 1) {\n return this.duration - this.currentAnimationAction.time;\n }\n else {\n return this.currentAnimationAction.time;\n }\n }\n return 0;\n }\n set animationTimeScale(value) {\n this.mixer.timeScale = value;\n }\n get animationTimeScale() {\n return this.mixer.timeScale;\n }\n get duration() {\n if (this.currentAnimationAction != null &&\n this.currentAnimationAction.getClip()) {\n return this.currentAnimationAction.getClip().duration;\n }\n return 0;\n }\n get hasActiveAnimation() {\n return this.currentAnimationAction != null;\n }\n /**\n * Plays an animation if there are any associated with the current model.\n * Accepts an optional string name of an animation to play. If no name is\n * provided, or if no animation is found by the given name, always falls back\n * to playing the first animation.\n */\n playAnimation(name = null, crossfadeTime = 0, loopMode = LoopRepeat, repetitionCount = Infinity) {\n if (this._currentGLTF == null) {\n return;\n }\n const { animations } = this;\n if (animations == null || animations.length === 0) {\n console.warn(`Cannot play animation (model does not have any animations)`);\n return;\n }\n let animationClip = null;\n if (name != null) {\n animationClip = this.animationsByName.get(name);\n if (animationClip == null) {\n const parsedAnimationIndex = parseInt(name);\n if (!isNaN(parsedAnimationIndex) && parsedAnimationIndex >= 0 &&\n parsedAnimationIndex < animations.length) {\n animationClip = animations[parsedAnimationIndex];\n }\n }\n }\n if (animationClip == null) {\n animationClip = animations[0];\n }\n try {\n const { currentAnimationAction: lastAnimationAction } = this;\n const action = this.mixer.clipAction(animationClip, this);\n this.currentAnimationAction = action;\n if (this.element.paused) {\n this.mixer.stopAllAction();\n }\n else {\n action.paused = false;\n if (lastAnimationAction != null && action !== lastAnimationAction) {\n action.crossFadeFrom(lastAnimationAction, crossfadeTime, false);\n }\n else if (this.animationTimeScale > 0 &&\n this.animationTime == this.duration) {\n // This is a workaround for what I believe is a three.js bug.\n this.animationTime = 0;\n }\n }\n action.setLoop(loopMode, repetitionCount);\n action.enabled = true;\n action.clampWhenFinished = true;\n action.play();\n }\n catch (error) {\n console.error(error);\n }\n }\n stopAnimation() {\n this.currentAnimationAction = null;\n this.mixer.stopAllAction();\n }\n updateAnimation(step) {\n this.mixer.update(step);\n this.queueShadowRender();\n }\n subscribeMixerEvent(event, callback) {\n this.mixer.addEventListener(event, callback);\n }\n /**\n * Call if the object has been changed in such a way that the shadow's shape\n * has changed (not a rotation about the Y axis).\n */\n updateShadow() {\n const shadow = this.shadow;\n if (shadow != null) {\n const side = this.element.arPlacement === 'wall' ? 'back' : 'bottom';\n shadow.setScene(this, this.shadowSoftness, side);\n shadow.needsUpdate = true;\n }\n }\n renderShadow(renderer) {\n const shadow = this.shadow;\n if (shadow != null && shadow.needsUpdate == true) {\n shadow.render(renderer, this);\n shadow.needsUpdate = false;\n }\n }\n queueShadowRender() {\n if (this.shadow != null) {\n this.shadow.needsUpdate = true;\n }\n }\n /**\n * Sets the shadow's intensity, lazily creating the shadow as necessary.\n */\n setShadowIntensity(shadowIntensity) {\n this.shadowIntensity = shadowIntensity;\n if (this._currentGLTF == null) {\n return;\n }\n this.setBakedShadowVisibility();\n if (shadowIntensity <= 0 && this.shadow == null) {\n return;\n }\n if (this.shadow == null) {\n const side = this.element.arPlacement === 'wall' ? 'back' : 'bottom';\n this.shadow = new Shadow(this, this.shadowSoftness, side);\n }\n this.shadow.setIntensity(shadowIntensity);\n }\n /**\n * Sets the shadow's softness by mapping a [0, 1] softness parameter to the\n * shadow's resolution. This involves reallocation, so it should not be\n * changed frequently. Softer shadows are cheaper to render.\n */\n setShadowSoftness(softness) {\n this.shadowSoftness = softness;\n const shadow = this.shadow;\n if (shadow != null) {\n shadow.setSoftness(softness);\n }\n }\n /**\n * Shift the floor vertically from the bottom of the model's bounding box by\n * offset (should generally be negative).\n */\n setShadowOffset(offset) {\n const shadow = this.shadow;\n if (shadow != null) {\n shadow.setOffset(offset);\n }\n }\n get raycaster() {\n return raycaster;\n }\n /**\n * This method returns the world position, model-space normal and texture\n * coordinate of the point on the mesh corresponding to the input pixel\n * coordinates given relative to the model-viewer element. If the mesh\n * is not hit, the result is null.\n */\n positionAndNormalFromPoint(ndcPosition, object = this) {\n this.raycaster.setFromCamera(ndcPosition, this.getCamera());\n const hits = this.raycaster.intersectObject(object, true);\n const hit = hits.find((hit) => !hit.object.userData.shadow);\n if (hit == null || hit.face == null) {\n return null;\n }\n if (hit.uv == null) {\n return { position: hit.point, normal: hit.face.normal, uv: null };\n }\n hit.face.normal.applyNormalMatrix(new Matrix3().getNormalMatrix(hit.object.matrixWorld));\n return { position: hit.point, normal: hit.face.normal, uv: hit.uv };\n }\n /**\n * The following methods are for operating on the set of Hotspot objects\n * attached to the scene. These come from DOM elements, provided to slots by\n * the Annotation Mixin.\n */\n addHotspot(hotspot) {\n this.target.add(hotspot);\n // This happens automatically in render(), but we do it early so that\n // the slots appear in the shadow DOM and the elements get attached,\n // allowing us to dispatch events on them.\n this.annotationRenderer.domElement.appendChild(hotspot.element);\n }\n removeHotspot(hotspot) {\n this.target.remove(hotspot);\n }\n /**\n * Helper method to apply a function to all hotspots.\n */\n forHotspots(func) {\n const { children } = this.target;\n for (let i = 0, l = children.length; i < l; i++) {\n const hotspot = children[i];\n if (hotspot instanceof Hotspot) {\n func(hotspot);\n }\n }\n }\n /**\n * Update the CSS visibility of the hotspots based on whether their normals\n * point toward the camera.\n */\n updateHotspots(viewerPosition) {\n this.forHotspots((hotspot) => {\n view.copy(viewerPosition);\n target.setFromMatrixPosition(hotspot.matrixWorld);\n view.sub(target);\n normalWorld.copy(hotspot.normal)\n .transformDirection(this.target.matrixWorld);\n if (view.dot(normalWorld) < 0) {\n hotspot.hide();\n }\n else {\n hotspot.show();\n }\n });\n }\n /**\n * Rotate all hotspots to an absolute orientation given by the input number of\n * radians. Zero returns them to upright.\n */\n orientHotspots(radians) {\n this.forHotspots((hotspot) => {\n hotspot.orient(radians);\n });\n }\n /**\n * Set the rendering visibility of all hotspots. This is used to hide them\n * during transitions and such.\n */\n setHotspotsVisibility(visible) {\n this.forHotspots((hotspot) => {\n hotspot.visible = visible;\n });\n }\n updateSchema(src) {\n var _a;\n const { schemaElement, element } = this;\n const { alt, poster, iosSrc } = element;\n if (src != null) {\n const encoding = [{\n '@type': 'MediaObject',\n contentUrl: src,\n encodingFormat: ((_a = src.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'gltf' ?\n 'model/gltf+json' :\n 'model/gltf-binary'\n }];\n if (iosSrc) {\n encoding.push({\n '@type': 'MediaObject',\n contentUrl: iosSrc,\n encodingFormat: 'model/vnd.usdz+zip'\n });\n }\n const structuredData = {\n '@context': 'http://schema.org/',\n '@type': '3DModel',\n image: poster !== null && poster !== void 0 ? poster : undefined,\n name: alt !== null && alt !== void 0 ? alt : undefined,\n encoding\n };\n schemaElement.textContent = JSON.stringify(structuredData);\n document.head.appendChild(schemaElement);\n }\n else if (schemaElement.parentElement != null) {\n schemaElement.parentElement.removeChild(schemaElement);\n }\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nconst BASE_OPACITY = 0.5;\nconst DEFAULT_SHADOW_INTENSITY = 0.0;\nconst DEFAULT_SHADOW_SOFTNESS = 1.0;\nconst DEFAULT_EXPOSURE = 1.0;\nconst $currentEnvironmentMap = Symbol('currentEnvironmentMap');\nconst $applyEnvironmentMap = Symbol('applyEnvironmentMap');\nconst $updateEnvironment = Symbol('updateEnvironment');\nconst $cancelEnvironmentUpdate = Symbol('cancelEnvironmentUpdate');\nconst $onPreload = Symbol('onPreload');\nconst EnvironmentMixin = (ModelViewerElement) => {\n var _a, _b, _c;\n class EnvironmentModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this.environmentImage = null;\n this.skyboxImage = null;\n this.shadowIntensity = DEFAULT_SHADOW_INTENSITY;\n this.shadowSoftness = DEFAULT_SHADOW_SOFTNESS;\n this.exposure = DEFAULT_EXPOSURE;\n this[_a] = null;\n this[_b] = null;\n this[_c] = (event) => {\n if (event.element === this) {\n this[$updateEnvironment]();\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this[$renderer].loader.addEventListener('preload', this[$onPreload]);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this[$renderer].loader.removeEventListener('preload', this[$onPreload]);\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('shadowIntensity')) {\n this[$scene].setShadowIntensity(this.shadowIntensity * BASE_OPACITY);\n this[$needsRender]();\n }\n if (changedProperties.has('shadowSoftness')) {\n this[$scene].setShadowSoftness(this.shadowSoftness);\n this[$needsRender]();\n }\n if (changedProperties.has('exposure')) {\n this[$scene].exposure = this.exposure;\n this[$needsRender]();\n }\n if ((changedProperties.has('environmentImage') ||\n changedProperties.has('skyboxImage')) &&\n this[$shouldAttemptPreload]()) {\n this[$updateEnvironment]();\n }\n }\n hasBakedShadow() {\n return this[$scene].bakedShadows.size > 0;\n }\n [(_a = $currentEnvironmentMap, _b = $cancelEnvironmentUpdate, _c = $onPreload, $onModelLoad)]() {\n super[$onModelLoad]();\n if (this[$currentEnvironmentMap] != null) {\n this[$applyEnvironmentMap](this[$currentEnvironmentMap]);\n }\n }\n async [$updateEnvironment]() {\n const { skyboxImage, environmentImage } = this;\n if (this[$cancelEnvironmentUpdate] != null) {\n this[$cancelEnvironmentUpdate]();\n this[$cancelEnvironmentUpdate] = null;\n }\n const { textureUtils } = this[$renderer];\n if (textureUtils == null) {\n return;\n }\n try {\n const { environmentMap, skybox } = await new Promise(async (resolve, reject) => {\n const texturesLoad = textureUtils.generateEnvironmentMapAndSkybox(deserializeUrl(skyboxImage), environmentImage, { progressTracker: this[$progressTracker] });\n this[$cancelEnvironmentUpdate] = () => reject(texturesLoad);\n resolve(await texturesLoad);\n });\n if (skybox != null) {\n // When using the same environment and skybox, use the environment as\n // it gives HDR filtering.\n this[$scene].background =\n skybox.name === environmentMap.name ? environmentMap : skybox;\n }\n else {\n this[$scene].background = null;\n }\n this[$applyEnvironmentMap](environmentMap);\n this[$scene].dispatchEvent({ type: 'envmap-update' });\n }\n catch (errorOrPromise) {\n if (errorOrPromise instanceof Error) {\n this[$applyEnvironmentMap](null);\n throw errorOrPromise;\n }\n }\n }\n /**\n * Sets the Model to use the provided environment map,\n * or `null` if the Model should remove its' environment map.\n */\n [$applyEnvironmentMap](environmentMap) {\n if (this[$scene].environment === environmentMap) {\n return;\n }\n this[$currentEnvironmentMap] = environmentMap;\n this[$scene].environment = this[$currentEnvironmentMap];\n this.dispatchEvent(new CustomEvent('environment-change'));\n this[$needsRender]();\n }\n }\n __decorate$7([\n e$3({ type: String, attribute: 'environment-image' })\n ], EnvironmentModelViewerElement.prototype, \"environmentImage\", void 0);\n __decorate$7([\n e$3({ type: String, attribute: 'skybox-image' })\n ], EnvironmentModelViewerElement.prototype, \"skyboxImage\", void 0);\n __decorate$7([\n e$3({ type: Number, attribute: 'shadow-intensity' })\n ], EnvironmentModelViewerElement.prototype, \"shadowIntensity\", void 0);\n __decorate$7([\n e$3({ type: Number, attribute: 'shadow-softness' })\n ], EnvironmentModelViewerElement.prototype, \"shadowSoftness\", void 0);\n __decorate$7([\n e$3({\n type: Number,\n })\n ], EnvironmentModelViewerElement.prototype, \"exposure\", void 0);\n return EnvironmentModelViewerElement;\n};\n\nclass SessionLightProbe {\n\n\tconstructor( xrLight, renderer, lightProbe, environmentEstimation, estimationStartCallback ) {\n\n\t\tthis.xrLight = xrLight;\n\t\tthis.renderer = renderer;\n\t\tthis.lightProbe = lightProbe;\n\t\tthis.xrWebGLBinding = null;\n\t\tthis.estimationStartCallback = estimationStartCallback;\n\t\tthis.frameCallback = this.onXRFrame.bind( this );\n\n\t\tconst session = renderer.xr.getSession();\n\n\t\t// If the XRWebGLBinding class is available then we can also query an\n\t\t// estimated reflection cube map.\n\t\tif ( environmentEstimation && 'XRWebGLBinding' in window ) {\n\n\t\t\t// This is the simplest way I know of to initialize a WebGL cubemap in Three.\n\t\t\tconst cubeRenderTarget = new WebGLCubeRenderTarget( 16 );\n\t\t\txrLight.environment = cubeRenderTarget.texture;\n\n\t\t\tconst gl = renderer.getContext();\n\n\t\t\t// Ensure that we have any extensions needed to use the preferred cube map format.\n\t\t\tswitch ( session.preferredReflectionFormat ) {\n\n\t\t\t\tcase 'srgba8':\n\t\t\t\t\tgl.getExtension( 'EXT_sRGB' );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'rgba16f':\n\t\t\t\t\tgl.getExtension( 'OES_texture_half_float' );\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tthis.xrWebGLBinding = new XRWebGLBinding( session, gl );\n\n\t\t\tthis.lightProbe.addEventListener( 'reflectionchange', () => {\n\n\t\t\t\tthis.updateReflection();\n\n\t\t\t} );\n\n\t\t}\n\n\t\t// Start monitoring the XR animation frame loop to look for lighting\n\t\t// estimation changes.\n\t\tsession.requestAnimationFrame( this.frameCallback );\n\n\t}\n\n\tupdateReflection() {\n\n\t\tconst textureProperties = this.renderer.properties.get( this.xrLight.environment );\n\n\t\tif ( textureProperties ) {\n\n\t\t\tconst cubeMap = this.xrWebGLBinding.getReflectionCubeMap( this.lightProbe );\n\n\t\t\tif ( cubeMap ) {\n\n\t\t\t\ttextureProperties.__webglTexture = cubeMap;\n\n\t\t\t\tthis.xrLight.environment.needsPMREMUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tonXRFrame( time, xrFrame ) {\n\n\t\t// If either this obejct or the XREstimatedLight has been destroyed, stop\n\t\t// running the frame loop.\n\t\tif ( ! this.xrLight ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst session = xrFrame.session;\n\t\tsession.requestAnimationFrame( this.frameCallback );\n\n\t\tconst lightEstimate = xrFrame.getLightEstimate( this.lightProbe );\n\t\tif ( lightEstimate ) {\n\n\t\t\t// We can copy the estimate's spherical harmonics array directly into the light probe.\n\t\t\tthis.xrLight.lightProbe.sh.fromArray( lightEstimate.sphericalHarmonicsCoefficients );\n\t\t\tthis.xrLight.lightProbe.intensity = 1.0;\n\n\t\t\t// For the directional light we have to normalize the color and set the scalar as the\n\t\t\t// intensity, since WebXR can return color values that exceed 1.0.\n\t\t\tconst intensityScalar = Math.max( 1.0,\n\t\t\t\tMath.max( lightEstimate.primaryLightIntensity.x,\n\t\t\t\t\tMath.max( lightEstimate.primaryLightIntensity.y,\n\t\t\t\t\t\tlightEstimate.primaryLightIntensity.z ) ) );\n\n\t\t\tthis.xrLight.directionalLight.color.setRGB(\n\t\t\t\tlightEstimate.primaryLightIntensity.x / intensityScalar,\n\t\t\t\tlightEstimate.primaryLightIntensity.y / intensityScalar,\n\t\t\t\tlightEstimate.primaryLightIntensity.z / intensityScalar );\n\t\t\tthis.xrLight.directionalLight.intensity = intensityScalar;\n\t\t\tthis.xrLight.directionalLight.position.copy( lightEstimate.primaryLightDirection );\n\n\t\t\tif ( this.estimationStartCallback ) {\n\n\t\t\t\tthis.estimationStartCallback();\n\t\t\t\tthis.estimationStartCallback = null;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispose() {\n\n\t\tthis.xrLight = null;\n\t\tthis.renderer = null;\n\t\tthis.lightProbe = null;\n\t\tthis.xrWebGLBinding = null;\n\n\t}\n\n}\n\nclass XREstimatedLight extends Group {\n\n\tconstructor( renderer, environmentEstimation = true ) {\n\n\t\tsuper();\n\n\t\tthis.lightProbe = new LightProbe();\n\t\tthis.lightProbe.intensity = 0;\n\t\tthis.add( this.lightProbe );\n\n\t\tthis.directionalLight = new DirectionalLight();\n\t\tthis.directionalLight.intensity = 0;\n\t\tthis.add( this.directionalLight );\n\n\t\t// Will be set to a cube map in the SessionLightProbe is environment estimation is\n\t\t// available and requested.\n\t\tthis.environment = null;\n\n\t\tlet sessionLightProbe = null;\n\t\tlet estimationStarted = false;\n\t\trenderer.xr.addEventListener( 'sessionstart', () => {\n\n\t\t\tconst session = renderer.xr.getSession();\n\n\t\t\tif ( 'requestLightProbe' in session ) {\n\n\t\t\t\tsession.requestLightProbe( {\n\n\t\t\t\t\treflectionFormat: session.preferredReflectionFormat\n\n\t\t\t\t} ).then( ( probe ) => {\n\n\t\t\t\t\tsessionLightProbe = new SessionLightProbe( this, renderer, probe, environmentEstimation, () => {\n\n\t\t\t\t\t\testimationStarted = true;\n\n\t\t\t\t\t\t// Fired to indicate that the estimated lighting values are now being updated.\n\t\t\t\t\t\tthis.dispatchEvent( { type: 'estimationstart' } );\n\n\t\t\t\t\t} );\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} );\n\n\t\trenderer.xr.addEventListener( 'sessionend', () => {\n\n\t\t\tif ( sessionLightProbe ) {\n\n\t\t\t\tsessionLightProbe.dispose();\n\t\t\t\tsessionLightProbe = null;\n\n\t\t\t}\n\n\t\t\tif ( estimationStarted ) {\n\n\t\t\t\t// Fired to indicate that the estimated lighting values are no longer being updated.\n\t\t\t\tthis.dispatchEvent( { type: 'estimationend' } );\n\n\t\t\t}\n\n\t\t} );\n\n\t\t// Done inline to provide access to sessionLightProbe.\n\t\tthis.dispose = () => {\n\n\t\t\tif ( sessionLightProbe ) {\n\n\t\t\t\tsessionLightProbe.dispose();\n\t\t\t\tsessionLightProbe = null;\n\n\t\t\t}\n\n\t\t\tthis.remove( this.lightProbe );\n\t\t\tthis.lightProbe = null;\n\n\t\t\tthis.remove( this.directionalLight );\n\t\t\tthis.directionalLight = null;\n\n\t\t\tthis.environment = null;\n\n\t\t};\n\n\t}\n\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst RADIUS = 0.2;\nconst LINE_WIDTH = 0.03;\nconst MAX_OPACITY = 0.75;\nconst SEGMENTS = 12;\nconst DELTA_PHI = Math.PI / (2 * SEGMENTS);\nconst vector2$1 = new Vector2();\n/**\n * Adds a quarter-annulus of vertices to the array, centered on cornerX,\n * cornerY.\n */\nconst addCorner = (vertices, cornerX, cornerY) => {\n let phi = cornerX > 0 ? (cornerY > 0 ? 0 : -Math.PI / 2) :\n (cornerY > 0 ? Math.PI / 2 : Math.PI);\n for (let i = 0; i <= SEGMENTS; ++i) {\n vertices.push(cornerX + (RADIUS - LINE_WIDTH) * Math.cos(phi), cornerY + (RADIUS - LINE_WIDTH) * Math.sin(phi), 0, cornerX + RADIUS * Math.cos(phi), cornerY + RADIUS * Math.sin(phi), 0);\n phi += DELTA_PHI;\n }\n};\n/**\n * This class is a set of two coincident planes. The first is just a cute box\n * outline with rounded corners and damped opacity to indicate the floor extents\n * of a scene. It is purposely larger than the scene's bounding box by RADIUS on\n * all sides so that small scenes are still visible / selectable. Its center is\n * actually carved out by vertices to ensure its fragment shader doesn't add\n * much time.\n *\n * The child plane is a simple plane with the same extents for use in hit\n * testing (translation is triggered when the touch hits the plane, rotation\n * otherwise).\n */\nclass PlacementBox extends Mesh {\n constructor(scene, side) {\n const geometry = new BufferGeometry();\n const triangles = [];\n const vertices = [];\n const { size, boundingBox } = scene;\n const x = size.x / 2;\n const y = (side === 'back' ? size.y : size.z) / 2;\n addCorner(vertices, x, y);\n addCorner(vertices, -x, y);\n addCorner(vertices, -x, -y);\n addCorner(vertices, x, -y);\n const numVertices = vertices.length / 3;\n for (let i = 0; i < numVertices - 2; i += 2) {\n triangles.push(i, i + 1, i + 3, i, i + 3, i + 2);\n }\n const i = numVertices - 2;\n triangles.push(i, i + 1, 1, i, 1, 0);\n geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3));\n geometry.setIndex(triangles);\n super(geometry);\n this.side = side;\n const material = this.material;\n material.side = FrontSide;\n material.transparent = true;\n material.opacity = 0;\n this.goalOpacity = 0;\n this.opacityDamper = new Damper();\n this.hitPlane =\n new Mesh(new PlaneGeometry(2 * (x + RADIUS), 2 * (y + RADIUS)));\n this.hitPlane.visible = false;\n this.add(this.hitPlane);\n boundingBox.getCenter(this.position);\n switch (side) {\n case 'bottom':\n this.rotateX(-Math.PI / 2);\n this.shadowHeight = boundingBox.min.y;\n this.position.y = this.shadowHeight;\n break;\n case 'back':\n this.shadowHeight = boundingBox.min.z;\n this.position.z = this.shadowHeight;\n }\n scene.target.add(this);\n this.offsetHeight = 0;\n }\n /**\n * Get the world hit position if the touch coordinates hit the box, and null\n * otherwise. Pass the scene in to get access to its raycaster.\n */\n getHit(scene, screenX, screenY) {\n vector2$1.set(screenX, -screenY);\n this.hitPlane.visible = true;\n const hitResult = scene.positionAndNormalFromPoint(vector2$1, this.hitPlane);\n this.hitPlane.visible = false;\n return hitResult == null ? null : hitResult.position;\n }\n getExpandedHit(scene, screenX, screenY) {\n this.hitPlane.scale.set(1000, 1000, 1000);\n const hitResult = this.getHit(scene, screenX, screenY);\n this.hitPlane.scale.set(1, 1, 1);\n return hitResult;\n }\n /**\n * Offset the height of the box relative to the bottom of the scene. Positive\n * is up, so generally only negative values are used.\n */\n set offsetHeight(offset) {\n offset -= 0.001; // push 1 mm below shadow to avoid z-fighting\n if (this.side === 'back') {\n this.position.z = this.shadowHeight + offset;\n }\n else {\n this.position.y = this.shadowHeight + offset;\n }\n }\n get offsetHeight() {\n if (this.side === 'back') {\n return this.position.z - this.shadowHeight;\n }\n else {\n return this.position.y - this.shadowHeight;\n }\n }\n /**\n * Set the box's visibility; it will fade in and out.\n */\n set show(visible) {\n this.goalOpacity = visible ? MAX_OPACITY : 0;\n }\n /**\n * Call on each frame with the frame delta to fade the box.\n */\n updateOpacity(delta) {\n const material = this.material;\n material.opacity =\n this.opacityDamper.update(material.opacity, this.goalOpacity, delta, 1);\n this.visible = material.opacity > 0;\n }\n /**\n * Call this to clean up Three's cache when you remove the box.\n */\n dispose() {\n var _a;\n const { geometry, material } = this.hitPlane;\n geometry.dispose();\n material.dispose();\n this.geometry.dispose();\n this.material.dispose();\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.remove(this);\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// number of initial null pose XRFrames allowed before we post not-tracking\nconst INIT_FRAMES = 30;\n// AR shadow is not user-configurable. This is to pave the way for AR lighting\n// estimation, which will be used once available in WebXR.\nconst AR_SHADOW_INTENSITY = 0.8;\nconst ROTATION_RATE = 1.5;\n// Angle down (towards bottom of screen) from camera center ray to use for hit\n// testing against the floor. This makes placement faster and more intuitive\n// assuming the phone is in portrait mode. This seems to be a reasonable\n// assumption for the start of the session and UI will lack landscape mode to\n// encourage upright use.\nconst HIT_ANGLE_DEG = 20;\nconst SCALE_SNAP_HIGH = 1.3;\nconst SCALE_SNAP_LOW = 1 / SCALE_SNAP_HIGH;\n// For automatic dynamic viewport scaling, don't let the scale drop below this\n// limit.\nconst MIN_VIEWPORT_SCALE = 0.25;\n// Furthest away you can move an object (meters).\nconst MAX_DISTANCE = 10;\nconst ARStatus = {\n NOT_PRESENTING: 'not-presenting',\n SESSION_STARTED: 'session-started',\n OBJECT_PLACED: 'object-placed',\n FAILED: 'failed'\n};\nconst ARTracking = {\n TRACKING: 'tracking',\n NOT_TRACKING: 'not-tracking'\n};\nconst vector3$1 = new Vector3();\nconst matrix4 = new Matrix4();\nconst hitPosition = new Vector3();\nconst camera = new PerspectiveCamera(45, 1, 0.1, 100);\nclass ARRenderer extends EventDispatcher {\n constructor(renderer) {\n super();\n this.renderer = renderer;\n this.currentSession = null;\n this.placeOnWall = false;\n this.placementBox = null;\n this.lastTick = null;\n this.turntableRotation = null;\n this.oldShadowIntensity = null;\n this.oldBackground = null;\n this.oldEnvironment = null;\n this.frame = null;\n this.initialHitSource = null;\n this.transientHitTestSource = null;\n this.inputSource = null;\n this._presentedScene = null;\n this.resolveCleanup = null;\n this.exitWebXRButtonContainer = null;\n this.overlay = null;\n this.xrLight = null;\n this.tracking = true;\n this.frames = 0;\n this.initialized = false;\n this.oldTarget = new Vector3();\n this.placementComplete = false;\n this.isTranslating = false;\n this.isRotating = false;\n this.isTwoFingering = false;\n this.lastDragPosition = new Vector3();\n this.firstRatio = 0;\n this.lastAngle = 0;\n this.goalPosition = new Vector3();\n this.goalYaw = 0;\n this.goalScale = 1;\n this.xDamper = new Damper();\n this.yDamper = new Damper();\n this.zDamper = new Damper();\n this.yawDamper = new Damper();\n this.scaleDamper = new Damper();\n this.onExitWebXRButtonContainerClick = () => this.stopPresenting();\n this.onUpdateScene = () => {\n if (this.placementBox != null && this.isPresenting) {\n this.placementBox.dispose();\n this.placementBox = new PlacementBox(this.presentedScene, this.placeOnWall ? 'back' : 'bottom');\n }\n };\n this.onSelectStart = (event) => {\n const hitSource = this.transientHitTestSource;\n if (hitSource == null) {\n return;\n }\n const fingers = this.frame.getHitTestResultsForTransientInput(hitSource);\n const scene = this.presentedScene;\n const box = this.placementBox;\n if (fingers.length === 1) {\n this.inputSource = event.inputSource;\n const { axes } = this.inputSource.gamepad;\n const hitPosition = box.getHit(this.presentedScene, axes[0], axes[1]);\n box.show = true;\n if (hitPosition != null) {\n this.isTranslating = true;\n this.lastDragPosition.copy(hitPosition);\n }\n else if (this.placeOnWall === false) {\n this.isRotating = true;\n this.lastAngle = axes[0] * ROTATION_RATE;\n }\n }\n else if (fingers.length === 2) {\n box.show = true;\n this.isTwoFingering = true;\n const { separation } = this.fingerPolar(fingers);\n this.firstRatio = separation / scene.scale.x;\n }\n };\n this.onSelectEnd = () => {\n this.isTranslating = false;\n this.isRotating = false;\n this.isTwoFingering = false;\n this.inputSource = null;\n this.goalPosition.y +=\n this.placementBox.offsetHeight * this.presentedScene.scale.x;\n this.placementBox.show = false;\n };\n this.threeRenderer = renderer.threeRenderer;\n this.threeRenderer.xr.enabled = true;\n }\n async resolveARSession() {\n assertIsArCandidate();\n const session = await navigator.xr.requestSession('immersive-ar', {\n requiredFeatures: ['hit-test'],\n optionalFeatures: ['dom-overlay', 'light-estimation'],\n domOverlay: { root: this.overlay }\n });\n this.threeRenderer.xr.setReferenceSpaceType('local');\n await this.threeRenderer.xr.setSession(session);\n this.threeRenderer.xr.cameraAutoUpdate = false;\n return session;\n }\n /**\n * The currently presented scene, if any\n */\n get presentedScene() {\n return this._presentedScene;\n }\n /**\n * Resolves to true if the renderer has detected all the necessary qualities\n * to support presentation in AR.\n */\n async supportsPresentation() {\n try {\n assertIsArCandidate();\n return await navigator.xr.isSessionSupported('immersive-ar');\n }\n catch (error) {\n console.warn('Request to present in WebXR denied:');\n console.warn(error);\n console.warn('Falling back to next ar-mode');\n return false;\n }\n }\n /**\n * Present a scene in AR\n */\n async present(scene, environmentEstimation = false) {\n if (this.isPresenting) {\n console.warn('Cannot present while a model is already presenting');\n }\n let waitForAnimationFrame = new Promise((resolve, _reject) => {\n requestAnimationFrame(() => resolve());\n });\n scene.setHotspotsVisibility(false);\n scene.queueRender();\n // Render a frame to turn off the hotspots\n await waitForAnimationFrame;\n // This sets isPresenting to true\n this._presentedScene = scene;\n this.overlay = scene.element.shadowRoot.querySelector('div.default');\n if (environmentEstimation === true) {\n this.xrLight = new XREstimatedLight(this.threeRenderer);\n this.xrLight.addEventListener('estimationstart', () => {\n if (!this.isPresenting || this.xrLight == null) {\n return;\n }\n const scene = this.presentedScene;\n scene.add(this.xrLight);\n this.oldEnvironment = scene.environment;\n scene.environment = this.xrLight.environment;\n });\n }\n const currentSession = await this.resolveARSession();\n currentSession.addEventListener('end', () => {\n this.postSessionCleanup();\n }, { once: true });\n const exitButton = scene.element.shadowRoot.querySelector('.slot.exit-webxr-ar-button');\n exitButton.classList.add('enabled');\n exitButton.addEventListener('click', this.onExitWebXRButtonContainerClick);\n this.exitWebXRButtonContainer = exitButton;\n const viewerRefSpace = await currentSession.requestReferenceSpace('viewer');\n this.tracking = true;\n this.frames = 0;\n this.initialized = false;\n this.turntableRotation = scene.yaw;\n this.goalYaw = scene.yaw;\n this.goalScale = 1;\n this.oldBackground = scene.background;\n scene.background = null;\n this.oldShadowIntensity = scene.shadowIntensity;\n scene.setShadowIntensity(0.01); // invisible, but not changing the shader\n this.oldTarget.copy(scene.getTarget());\n scene.addEventListener('model-load', this.onUpdateScene);\n const radians = HIT_ANGLE_DEG * Math.PI / 180;\n const ray = this.placeOnWall === true ?\n undefined :\n new XRRay(new DOMPoint(0, 0, 0), { x: 0, y: -Math.sin(radians), z: -Math.cos(radians) });\n currentSession.requestHitTestSource({ space: viewerRefSpace, offsetRay: ray })\n .then(hitTestSource => {\n this.initialHitSource = hitTestSource;\n });\n this.currentSession = currentSession;\n this.placementBox =\n new PlacementBox(scene, this.placeOnWall ? 'back' : 'bottom');\n this.placementComplete = false;\n this.lastTick = performance.now();\n this.dispatchEvent({ type: 'status', status: ARStatus.SESSION_STARTED });\n }\n /**\n * If currently presenting a scene in AR, stops presentation and exits AR.\n */\n async stopPresenting() {\n if (!this.isPresenting) {\n return;\n }\n const cleanupPromise = new Promise((resolve) => {\n this.resolveCleanup = resolve;\n });\n try {\n await this.currentSession.end();\n await cleanupPromise;\n }\n catch (error) {\n console.warn('Error while trying to end WebXR AR session');\n console.warn(error);\n this.postSessionCleanup();\n }\n }\n /**\n * True if a scene is currently in the process of being presented in AR\n */\n get isPresenting() {\n return this.presentedScene != null;\n }\n get target() {\n return this.oldTarget;\n }\n updateTarget() {\n const scene = this.presentedScene;\n if (scene != null) {\n const target = scene.getTarget();\n this.oldTarget.copy(target);\n if (this.placeOnWall) {\n // Move the scene's target to the center of the back of the model's\n // bounding box.\n target.z = scene.boundingBox.min.z;\n }\n else {\n // Move the scene's target to the model's floor height.\n target.y = scene.boundingBox.min.y;\n }\n scene.setTarget(target.x, target.y, target.z);\n }\n }\n postSessionCleanup() {\n const session = this.currentSession;\n if (session != null) {\n session.removeEventListener('selectstart', this.onSelectStart);\n session.removeEventListener('selectend', this.onSelectEnd);\n this.currentSession = null;\n }\n const scene = this.presentedScene;\n if (scene != null) {\n const { element } = scene;\n if (this.xrLight != null) {\n scene.remove(this.xrLight);\n if (this.oldEnvironment != null) {\n scene.environment = this.oldEnvironment;\n this.oldEnvironment = null;\n }\n this.xrLight.dispose();\n this.xrLight = null;\n }\n scene.position.set(0, 0, 0);\n scene.scale.set(1, 1, 1);\n scene.setShadowOffset(0);\n const yaw = this.turntableRotation;\n if (yaw != null) {\n scene.yaw = yaw;\n }\n const intensity = this.oldShadowIntensity;\n if (intensity != null) {\n scene.setShadowIntensity(intensity);\n }\n const background = this.oldBackground;\n if (background != null) {\n scene.background = background;\n }\n const point = this.oldTarget;\n scene.setTarget(point.x, point.y, point.z);\n scene.xrCamera = null;\n scene.removeEventListener('model-load', this.onUpdateScene);\n scene.orientHotspots(0);\n element.requestUpdate('cameraTarget');\n element.requestUpdate('maxCameraOrbit');\n element[$onResize](element.getBoundingClientRect());\n }\n // Force the Renderer to update its size\n this.renderer.height = 0;\n const exitButton = this.exitWebXRButtonContainer;\n if (exitButton != null) {\n exitButton.classList.remove('enabled');\n exitButton.removeEventListener('click', this.onExitWebXRButtonContainerClick);\n this.exitWebXRButtonContainer = null;\n }\n const hitSource = this.transientHitTestSource;\n if (hitSource != null) {\n hitSource.cancel();\n this.transientHitTestSource = null;\n }\n const hitSourceInitial = this.initialHitSource;\n if (hitSourceInitial != null) {\n hitSourceInitial.cancel();\n this.initialHitSource = null;\n }\n if (this.placementBox != null) {\n this.placementBox.dispose();\n this.placementBox = null;\n }\n this.lastTick = null;\n this.turntableRotation = null;\n this.oldShadowIntensity = null;\n this.oldBackground = null;\n this._presentedScene = null;\n this.frame = null;\n this.inputSource = null;\n this.overlay = null;\n if (this.resolveCleanup != null) {\n this.resolveCleanup();\n }\n this.dispatchEvent({ type: 'status', status: ARStatus.NOT_PRESENTING });\n }\n updateView(view) {\n const scene = this.presentedScene;\n const xr = this.threeRenderer.xr;\n xr.updateCamera(camera);\n scene.xrCamera = xr.getCamera();\n const { elements } = scene.getCamera().matrixWorld;\n scene.orientHotspots(Math.atan2(elements[1], elements[5]));\n if (!this.initialized) {\n this.placeInitially();\n this.initialized = true;\n }\n // Use automatic dynamic viewport scaling if supported.\n if (view.requestViewportScale && view.recommendedViewportScale) {\n const scale = view.recommendedViewportScale;\n view.requestViewportScale(Math.max(scale, MIN_VIEWPORT_SCALE));\n }\n const layer = this.currentSession.renderState.baseLayer;\n const viewport = layer.getViewport(view);\n this.threeRenderer.setViewport(viewport.x, viewport.y, viewport.width, viewport.height);\n }\n placeInitially() {\n const scene = this.presentedScene;\n const { position, element } = scene;\n const xrCamera = scene.getCamera();\n const { width, height } = this.overlay.getBoundingClientRect();\n scene.setSize(width, height);\n xrCamera.projectionMatrixInverse.copy(xrCamera.projectionMatrix).invert();\n const { theta, radius } = element\n .getCameraOrbit();\n // Orient model to match the 3D camera view\n const cameraDirection = xrCamera.getWorldDirection(vector3$1);\n scene.yaw = Math.atan2(-cameraDirection.x, -cameraDirection.z) - theta;\n this.goalYaw = scene.yaw;\n position.copy(xrCamera.position)\n .add(cameraDirection.multiplyScalar(radius));\n this.updateTarget();\n const target = scene.getTarget();\n position.add(target).sub(this.oldTarget);\n this.goalPosition.copy(position);\n scene.setHotspotsVisibility(true);\n const { session } = this.frame;\n session.addEventListener('selectstart', this.onSelectStart);\n session.addEventListener('selectend', this.onSelectEnd);\n session\n .requestHitTestSourceForTransientInput({ profile: 'generic-touchscreen' })\n .then(hitTestSource => {\n this.transientHitTestSource = hitTestSource;\n });\n }\n getTouchLocation() {\n const { axes } = this.inputSource.gamepad;\n let location = this.placementBox.getExpandedHit(this.presentedScene, axes[0], axes[1]);\n if (location != null) {\n vector3$1.copy(location).sub(this.presentedScene.getCamera().position);\n if (vector3$1.length() > MAX_DISTANCE)\n return null;\n }\n return location;\n }\n getHitPoint(hitResult) {\n const refSpace = this.threeRenderer.xr.getReferenceSpace();\n const pose = hitResult.getPose(refSpace);\n if (pose == null) {\n return null;\n }\n const hitMatrix = matrix4.fromArray(pose.transform.matrix);\n if (this.placeOnWall === true) {\n // Orient the model to the wall's normal vector.\n this.goalYaw = Math.atan2(hitMatrix.elements[4], hitMatrix.elements[6]);\n }\n // Check that the y-coordinate of the normal is large enough that the normal\n // is pointing up for floor placement; opposite for wall placement.\n return hitMatrix.elements[5] > 0.75 !== this.placeOnWall ?\n hitPosition.setFromMatrixPosition(hitMatrix) :\n null;\n }\n moveToFloor(frame) {\n const hitSource = this.initialHitSource;\n if (hitSource == null) {\n return;\n }\n const hitTestResults = frame.getHitTestResults(hitSource);\n if (hitTestResults.length == 0) {\n return;\n }\n const hit = hitTestResults[0];\n const hitPoint = this.getHitPoint(hit);\n if (hitPoint == null) {\n return;\n }\n this.placementBox.show = true;\n // If the user is translating, let the finger hit-ray take precedence and\n // ignore this hit result.\n if (!this.isTranslating) {\n if (this.placeOnWall) {\n this.goalPosition.copy(hitPoint);\n }\n else {\n this.goalPosition.y = hitPoint.y;\n }\n }\n hitSource.cancel();\n this.initialHitSource = null;\n this.dispatchEvent({ type: 'status', status: ARStatus.OBJECT_PLACED });\n }\n fingerPolar(fingers) {\n const fingerOne = fingers[0].inputSource.gamepad.axes;\n const fingerTwo = fingers[1].inputSource.gamepad.axes;\n const deltaX = fingerTwo[0] - fingerOne[0];\n const deltaY = fingerTwo[1] - fingerOne[1];\n const angle = Math.atan2(deltaY, deltaX);\n let deltaYaw = this.lastAngle - angle;\n if (deltaYaw > Math.PI) {\n deltaYaw -= 2 * Math.PI;\n }\n else if (deltaYaw < -Math.PI) {\n deltaYaw += 2 * Math.PI;\n }\n this.lastAngle = angle;\n return {\n separation: Math.sqrt(deltaX * deltaX + deltaY * deltaY),\n deltaYaw: deltaYaw\n };\n }\n processInput(frame) {\n const hitSource = this.transientHitTestSource;\n if (hitSource == null) {\n return;\n }\n if (!this.isTranslating && !this.isTwoFingering && !this.isRotating) {\n return;\n }\n const fingers = frame.getHitTestResultsForTransientInput(hitSource);\n const scene = this.presentedScene;\n const scale = scene.scale.x;\n // Rotating, translating and scaling are mutually exclusive operations; only\n // one can happen at a time, but we can switch during a gesture.\n if (this.isTwoFingering) {\n if (fingers.length < 2) {\n // If we lose the second finger, stop scaling (in fact, stop processing\n // input altogether until a new gesture starts).\n this.isTwoFingering = false;\n }\n else {\n const { separation, deltaYaw } = this.fingerPolar(fingers);\n if (this.placeOnWall === false) {\n this.goalYaw += deltaYaw;\n }\n if (scene.canScale) {\n const scale = separation / this.firstRatio;\n this.goalScale =\n (scale < SCALE_SNAP_HIGH && scale > SCALE_SNAP_LOW) ? 1 : scale;\n }\n }\n return;\n }\n else if (fingers.length === 2) {\n // If we were rotating or translating and we get a second finger, switch\n // to scaling instead.\n this.isTranslating = false;\n this.isRotating = false;\n this.isTwoFingering = true;\n const { separation } = this.fingerPolar(fingers);\n this.firstRatio = separation / scale;\n return;\n }\n if (this.isRotating) {\n const angle = this.inputSource.gamepad.axes[0] * ROTATION_RATE;\n this.goalYaw += angle - this.lastAngle;\n this.lastAngle = angle;\n }\n else if (this.isTranslating) {\n fingers.forEach(finger => {\n if (finger.inputSource !== this.inputSource) {\n return;\n }\n let hit = null;\n if (finger.results.length > 0) {\n hit = this.getHitPoint(finger.results[0]);\n }\n if (hit == null) {\n hit = this.getTouchLocation();\n }\n if (hit == null) {\n return;\n }\n this.goalPosition.sub(this.lastDragPosition);\n if (this.placeOnWall === false) {\n const offset = hit.y - this.lastDragPosition.y;\n // When a lower floor is found, keep the model at the same height, but\n // drop the placement box to the floor. The model falls on select end.\n if (offset < 0) {\n this.placementBox.offsetHeight = offset / scale;\n this.presentedScene.setShadowOffset(offset);\n // Interpolate hit ray up to drag plane\n const cameraPosition = vector3$1.copy(scene.getCamera().position);\n const alpha = -offset / (cameraPosition.y - hit.y);\n cameraPosition.multiplyScalar(alpha);\n hit.multiplyScalar(1 - alpha).add(cameraPosition);\n }\n }\n this.goalPosition.add(hit);\n this.lastDragPosition.copy(hit);\n });\n }\n }\n moveScene(delta) {\n const scene = this.presentedScene;\n const { position, yaw } = scene;\n const boundingRadius = scene.boundingSphere.radius;\n const goal = this.goalPosition;\n const oldScale = scene.scale.x;\n const box = this.placementBox;\n if (!goal.equals(position) || this.goalScale !== oldScale) {\n let { x, y, z } = position;\n x = this.xDamper.update(x, goal.x, delta, boundingRadius);\n y = this.yDamper.update(y, goal.y, delta, boundingRadius);\n z = this.zDamper.update(z, goal.z, delta, boundingRadius);\n position.set(x, y, z);\n const newScale = this.scaleDamper.update(oldScale, this.goalScale, delta, 1);\n scene.scale.set(newScale, newScale, newScale);\n if (!this.isTranslating) {\n const offset = goal.y - y;\n if (this.placementComplete && this.placeOnWall === false) {\n box.offsetHeight = offset / newScale;\n scene.setShadowOffset(offset);\n }\n else if (offset === 0) {\n this.placementComplete = true;\n box.show = false;\n scene.setShadowIntensity(AR_SHADOW_INTENSITY);\n }\n }\n }\n box.updateOpacity(delta);\n scene.updateTarget(delta);\n // yaw must be updated last, since this also updates the shadow position.\n scene.yaw = this.yawDamper.update(yaw, this.goalYaw, delta, Math.PI);\n }\n /**\n * Only public to make it testable.\n */\n onWebXRFrame(time, frame) {\n this.frame = frame;\n ++this.frames;\n const refSpace = this.threeRenderer.xr.getReferenceSpace();\n const pose = frame.getViewerPose(refSpace);\n if (pose == null && this.tracking === true && this.frames > INIT_FRAMES) {\n this.tracking = false;\n this.dispatchEvent({ type: 'tracking', status: ARTracking.NOT_TRACKING });\n }\n const scene = this.presentedScene;\n if (pose == null || scene == null || !scene.element[$sceneIsReady]()) {\n this.threeRenderer.clear();\n return;\n }\n if (this.tracking === false) {\n this.tracking = true;\n this.dispatchEvent({ type: 'tracking', status: ARTracking.TRACKING });\n }\n // WebXR may return multiple views, i.e. for headset AR. This\n // isn't really supported at this point, but make a best-effort\n // attempt to render other views also, using the first view\n // as the main viewpoint.\n let isFirstView = true;\n for (const view of pose.views) {\n this.updateView(view);\n if (isFirstView) {\n this.moveToFloor(frame);\n this.processInput(frame);\n const delta = time - this.lastTick;\n this.moveScene(delta);\n this.renderer.preRender(scene, time, delta);\n this.lastTick = time;\n scene.renderShadow(this.threeRenderer);\n }\n this.threeRenderer.render(scene, scene.getCamera());\n isFirstView = false;\n }\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * This Debugger exposes internal details of the rendering\n * substructure so that external tools can more easily inspect and operate on\n * them.\n *\n * It also activates shader debugging on the associated GL context. Shader\n * debugging trades performance for useful error information, so it is not\n * recommended to activate this unless needed.\n */\nclass Debugger {\n constructor(renderer) {\n // Force WebGL shader debugging on:\n renderer.threeRenderer.debug = { checkShaderErrors: true };\n // Announce debug details at microtask timing to give the `Renderer`\n // constructor time to complete its initialization, just to be on the safe\n // side:\n Promise.resolve().then(() => {\n self.dispatchEvent(new CustomEvent('model-viewer-renderer-debug', {\n detail: {\n renderer,\n THREE: {\n ShaderMaterial,\n Texture: Texture$1,\n Mesh,\n Scene,\n PlaneBufferGeometry: PlaneGeometry,\n OrthographicCamera,\n WebGLRenderTarget\n }\n }\n }));\n });\n }\n addScene(scene) {\n self.dispatchEvent(new CustomEvent('model-viewer-scene-added-debug', { detail: { scene } }));\n }\n removeScene(scene) {\n self.dispatchEvent(new CustomEvent('model-viewer-scene-removed-debug', { detail: { scene } }));\n }\n}\n\nfunction clone( source ) {\n\n\tconst sourceLookup = new Map();\n\tconst cloneLookup = new Map();\n\n\tconst clone = source.clone();\n\n\tparallelTraverse( source, clone, function ( sourceNode, clonedNode ) {\n\n\t\tsourceLookup.set( clonedNode, sourceNode );\n\t\tcloneLookup.set( sourceNode, clonedNode );\n\n\t} );\n\n\tclone.traverse( function ( node ) {\n\n\t\tif ( ! node.isSkinnedMesh ) return;\n\n\t\tconst clonedMesh = node;\n\t\tconst sourceMesh = sourceLookup.get( node );\n\t\tconst sourceBones = sourceMesh.skeleton.bones;\n\n\t\tclonedMesh.skeleton = sourceMesh.skeleton.clone();\n\t\tclonedMesh.bindMatrix.copy( sourceMesh.bindMatrix );\n\n\t\tclonedMesh.skeleton.bones = sourceBones.map( function ( bone ) {\n\n\t\t\treturn cloneLookup.get( bone );\n\n\t\t} );\n\n\t\tclonedMesh.bind( clonedMesh.skeleton, clonedMesh.bindMatrix );\n\n\t} );\n\n\treturn clone;\n\n}\n\n\n\n\nfunction parallelTraverse( a, b, callback ) {\n\n\tcallback( a, b );\n\n\tfor ( let i = 0; i < a.children.length; i ++ ) {\n\n\t\tparallelTraverse( a.children[ i ], b.children[ i ], callback );\n\n\t}\n\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $prepared = Symbol('prepared');\nconst $prepare = Symbol('prepare');\nconst $preparedGLTF = Symbol('preparedGLTF');\nconst $clone = Symbol('clone');\n/**\n * Represents the preparation and enhancement of the output of a Three.js\n * GLTFLoader (a Three.js-flavor \"GLTF\"), to make it suitable for optimal,\n * correct viewing in a given presentation context and also make the cloning\n * process more explicit and legible.\n *\n * A GLTFInstance is API-compatible with a Three.js-flavor \"GLTF\", so it should\n * be considered to be interchangeable with the loaded result of a GLTFLoader.\n *\n * This basic implementation only implements trivial preparation and enhancement\n * of a GLTF. These operations are intended to be enhanced by inheriting\n * classes.\n */\nclass GLTFInstance {\n constructor(preparedGLTF) {\n this[$preparedGLTF] = preparedGLTF;\n }\n /**\n * Prepares a given GLTF for presentation and future cloning. A GLTF that is\n * prepared can safely have this method invoked on it multiple times; it will\n * only be prepared once, including after being cloned.\n */\n static prepare(source) {\n if (source.scene == null) {\n throw new Error('Model does not have a scene');\n }\n if (source[$prepared]) {\n return source;\n }\n const prepared = this[$prepare](source);\n // NOTE: ES5 Symbol polyfill is not compatible with spread operator\n // so {...prepared, [$prepared]: true} does not work\n prepared[$prepared] = true;\n return prepared;\n }\n /**\n * Override in an inheriting class to apply specialty one-time preparations\n * for a given input GLTF.\n */\n static [$prepare](source) {\n // TODO(#195,#1003): We don't currently support multiple scenes, so we don't\n // bother preparing extra scenes for now:\n const { scene } = source;\n const scenes = [scene];\n return Object.assign(Object.assign({}, source), { scene, scenes });\n }\n get parser() {\n return this[$preparedGLTF].parser;\n }\n get animations() {\n return this[$preparedGLTF].animations;\n }\n get scene() {\n return this[$preparedGLTF].scene;\n }\n get scenes() {\n return this[$preparedGLTF].scenes;\n }\n get cameras() {\n return this[$preparedGLTF].cameras;\n }\n get asset() {\n return this[$preparedGLTF].asset;\n }\n get userData() {\n return this[$preparedGLTF].userData;\n }\n /**\n * Creates and returns a copy of this instance.\n */\n clone() {\n const GLTFInstanceConstructor = this.constructor;\n const clonedGLTF = this[$clone]();\n return new GLTFInstanceConstructor(clonedGLTF);\n }\n /**\n * Cleans up any retained memory that might not otherwise be released when\n * this instance is done being used.\n */\n dispose() {\n this.scenes.forEach((scene) => {\n scene.traverse((object) => {\n if (!object.isMesh) {\n return;\n }\n const mesh = object;\n const materials = Array.isArray(mesh.material) ? mesh.material : [mesh.material];\n materials.forEach(material => {\n // Explicitly dispose any textures assigned to this material\n for (const propertyName in material) {\n const texture = material[propertyName];\n if (texture instanceof Texture$1) {\n const image = texture.source.data;\n if (image instanceof ImageBitmap) {\n image.close();\n }\n texture.dispose();\n }\n }\n material.dispose();\n });\n mesh.geometry.dispose();\n });\n });\n }\n /**\n * Override in an inheriting class to implement specialized cloning strategies\n */\n [$clone]() {\n const source = this[$preparedGLTF];\n // TODO(#195,#1003): We don't currently support multiple scenes, so we don't\n // bother cloning extra scenes for now:\n const scene = clone(this.scene);\n cloneVariantMaterials(scene, this.scene);\n const scenes = [scene];\n const userData = source.userData ? Object.assign({}, source.userData) : {};\n return Object.assign(Object.assign({}, source), { scene, scenes, userData });\n }\n}\n// Variant materials and original material instances are stored under\n// object.userData.variantMaterials/originalMaterial.\n// Three.js Object3D.clone() doesn't clone Three.js objects under\n// .userData so this function is a workaround.\nconst cloneVariantMaterials = (dst, src) => {\n traversePair(dst, src, (dst, src) => {\n if (src.userData.variantMaterials !== undefined) {\n dst.userData.variantMaterials = new Map(src.userData.variantMaterials);\n }\n if (src.userData.variantData !== undefined) {\n dst.userData.variantData = src.userData.variantData;\n }\n if (src.userData.originalMaterial !== undefined) {\n dst.userData.originalMaterial = src.userData.originalMaterial;\n }\n });\n};\nconst traversePair = (obj1, obj2, callback) => {\n callback(obj1, obj2);\n // Assume obj1 and obj2 have the same tree structure\n for (let i = 0; i < obj1.children.length; i++) {\n traversePair(obj1.children[i], obj2.children[i], callback);\n }\n};\n\nconst $threeGLTF = Symbol('threeGLTF');\nconst $gltf = Symbol('gltf');\nconst $gltfElementMap = Symbol('gltfElementMap');\nconst $threeObjectMap = Symbol('threeObjectMap');\nconst $parallelTraverseThreeScene = Symbol('parallelTraverseThreeScene');\nconst $correlateOriginalThreeGLTF = Symbol('correlateOriginalThreeGLTF');\nconst $correlateCloneThreeGLTF = Symbol('correlateCloneThreeGLTF');\n/**\n * The Three.js GLTFLoader provides us with an in-memory representation\n * of a glTF in terms of Three.js constructs. It also provides us with a copy\n * of the deserialized glTF without any Three.js decoration, and a mapping of\n * glTF elements to their corresponding Three.js constructs.\n *\n * A CorrelatedSceneGraph exposes a synchronously available mapping of glTF\n * element references to their corresponding Three.js constructs.\n */\nclass CorrelatedSceneGraph {\n constructor(threeGLTF, gltf, threeObjectMap, gltfElementMap) {\n this[$threeGLTF] = threeGLTF;\n this[$gltf] = gltf;\n this[$gltfElementMap] = gltfElementMap;\n this[$threeObjectMap] = threeObjectMap;\n }\n /**\n * Produce a CorrelatedSceneGraph from a naturally generated Three.js GLTF.\n * Such GLTFs are produced by Three.js' GLTFLoader, and contain cached\n * details that expedite the correlation step.\n *\n * If a CorrelatedSceneGraph is provided as the second argument, re-correlates\n * a cloned Three.js GLTF with a clone of the glTF hierarchy used to produce\n * the upstream Three.js GLTF that the clone was created from. The result\n * CorrelatedSceneGraph is representative of the cloned hierarchy.\n */\n static from(threeGLTF, upstreamCorrelatedSceneGraph) {\n if (upstreamCorrelatedSceneGraph != null) {\n return this[$correlateCloneThreeGLTF](threeGLTF, upstreamCorrelatedSceneGraph);\n }\n else {\n return this[$correlateOriginalThreeGLTF](threeGLTF);\n }\n }\n static [$correlateOriginalThreeGLTF](threeGLTF) {\n const gltf = threeGLTF.parser.json;\n const associations = threeGLTF.parser.associations;\n const gltfElementMap = new Map();\n const defaultMaterial = { name: 'Default' };\n const defaultReference = { type: 'materials', index: -1 };\n for (const threeMaterial of associations.keys()) {\n // Note: GLTFLoader creates a \"default\" material that has no\n // corresponding glTF element in the case that no materials are\n // specified in the source glTF. In this case we append a default\n // material to allow this to be operated upon.\n if (threeMaterial instanceof Material$1 &&\n associations.get(threeMaterial) == null) {\n if (defaultReference.index < 0) {\n if (gltf.materials == null) {\n gltf.materials = [];\n }\n defaultReference.index = gltf.materials.length;\n gltf.materials.push(defaultMaterial);\n }\n threeMaterial.name = defaultMaterial.name;\n associations.set(threeMaterial, { materials: defaultReference.index });\n }\n }\n // Creates a reverse look up map (gltf-object to Three-object)\n for (const [threeObject, gltfMappings] of associations) {\n if (gltfMappings) {\n const objWithUserData = threeObject;\n objWithUserData.userData = objWithUserData.userData || {};\n objWithUserData.userData.associations = gltfMappings;\n }\n for (const mapping in gltfMappings) {\n if (mapping != null && mapping !== 'primitives') {\n const type = mapping;\n const elementArray = gltf[type] || [];\n const gltfElement = elementArray[gltfMappings[type]];\n if (gltfElement == null) {\n // TODO: Maybe throw here...\n continue;\n }\n let threeObjects = gltfElementMap.get(gltfElement);\n if (threeObjects == null) {\n threeObjects = new Set();\n gltfElementMap.set(gltfElement, threeObjects);\n }\n threeObjects.add(threeObject);\n }\n }\n }\n return new CorrelatedSceneGraph(threeGLTF, gltf, associations, gltfElementMap);\n }\n /**\n * Transfers the association between a raw glTF and a Three.js scene graph\n * to a clone of the Three.js scene graph, resolved as a new\n * CorrelatedSceneGraph instance.\n */\n static [$correlateCloneThreeGLTF](cloneThreeGLTF, upstreamCorrelatedSceneGraph) {\n const originalThreeGLTF = upstreamCorrelatedSceneGraph.threeGLTF;\n const originalGLTF = upstreamCorrelatedSceneGraph.gltf;\n const cloneGLTF = JSON.parse(JSON.stringify(originalGLTF));\n const cloneThreeObjectMap = new Map();\n const cloneGLTFElementMap = new Map();\n for (let i = 0; i < originalThreeGLTF.scenes.length; i++) {\n this[$parallelTraverseThreeScene](originalThreeGLTF.scenes[i], cloneThreeGLTF.scenes[i], (object, cloneObject) => {\n const elementReference = upstreamCorrelatedSceneGraph.threeObjectMap.get(object);\n if (elementReference == null) {\n return;\n }\n for (const mapping in elementReference) {\n if (mapping != null && mapping !== 'primitives') {\n const type = mapping;\n const index = elementReference[type];\n const cloneElement = cloneGLTF[type][index];\n const mappings = cloneThreeObjectMap.get(cloneObject) || {};\n mappings[type] = index;\n cloneThreeObjectMap.set(cloneObject, mappings);\n const cloneObjects = cloneGLTFElementMap.get(cloneElement) || new Set();\n cloneObjects.add(cloneObject);\n cloneGLTFElementMap.set(cloneElement, cloneObjects);\n }\n }\n });\n }\n return new CorrelatedSceneGraph(cloneThreeGLTF, cloneGLTF, cloneThreeObjectMap, cloneGLTFElementMap);\n }\n /**\n * Traverses two presumably identical Three.js scenes, and invokes a\n * callback for each Object3D or Material encountered, including the initial\n * scene. Adapted from\n * https://github.com/mrdoob/three.js/blob/7c1424c5819ab622a346dd630ee4e6431388021e/examples/jsm/utils/SkeletonUtils.js#L586-L596\n */\n static [$parallelTraverseThreeScene](sceneOne, sceneTwo, callback) {\n const isMesh = (object) => {\n return object.isMesh;\n };\n const traverse = (a, b) => {\n callback(a, b);\n if (a.isObject3D) {\n if (isMesh(a)) {\n if (Array.isArray(a.material)) {\n for (let i = 0; i < a.material.length; ++i) {\n traverse(a.material[i], b.material[i]);\n }\n }\n else {\n traverse(a.material, b.material);\n }\n }\n for (let i = 0; i < a.children.length; ++i) {\n traverse(a.children[i], b.children[i]);\n }\n }\n };\n traverse(sceneOne, sceneTwo);\n }\n /**\n * The source Three.js GLTF result given to us by a Three.js GLTFLoader.\n */\n get threeGLTF() {\n return this[$threeGLTF];\n }\n /**\n * The in-memory deserialized source glTF.\n */\n get gltf() {\n return this[$gltf];\n }\n /**\n * A Map of glTF element references to arrays of corresponding Three.js\n * object references. Three.js objects are kept in arrays to account for\n * cases where more than one Three.js object corresponds to a single glTF\n * element.\n */\n get gltfElementMap() {\n return this[$gltfElementMap];\n }\n /**\n * A map of individual Three.js objects to corresponding elements in the\n * source glTF.\n */\n get threeObjectMap() {\n return this[$threeObjectMap];\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $correlatedSceneGraph$1 = Symbol('correlatedSceneGraph');\n/**\n * This specialization of GLTFInstance collects all of the processing needed\n * to prepare a model and to clone it making special considerations for\n * use cases.\n */\nclass ModelViewerGLTFInstance extends GLTFInstance {\n /**\n * @override\n */\n static [$prepare](source) {\n const prepared = super[$prepare](source);\n if (prepared[$correlatedSceneGraph$1] == null) {\n prepared[$correlatedSceneGraph$1] = CorrelatedSceneGraph.from(prepared);\n }\n const { scene } = prepared;\n const nullSphere = new Sphere(undefined, Infinity);\n scene.traverse((node) => {\n // Set a high renderOrder while we're here to ensure the model\n // always renders on top of the skysphere\n node.renderOrder = 1000;\n // Three.js seems to cull some animated models incorrectly. Since we\n // expect to view our whole scene anyway, we turn off the frustum\n // culling optimization here.\n node.frustumCulled = false;\n // Animations for objects without names target their UUID instead. When\n // objects are cloned, they get new UUIDs which the animation can't\n // find. To fix this, we assign their UUID as their name.\n if (!node.name) {\n node.name = node.uuid;\n }\n const mesh = node;\n if (mesh.isMesh) {\n const { geometry } = mesh;\n mesh.castShadow = true;\n if (mesh.isSkinnedMesh) {\n // Akin to disablig frustum culling above, we have to also manually\n // disable the bounds to make raycasting correct for skinned meshes.\n geometry.boundingSphere = nullSphere;\n // The bounding box is set in GLTFLoader by the accessor bounds, which\n // are not updated with animation.\n geometry.boundingBox = null;\n }\n const material = mesh.material;\n if (material.isMeshBasicMaterial === true) {\n material.toneMapped = false;\n }\n // This makes shadows better for non-manifold meshes\n material.shadowSide = FrontSide;\n // Fixes an edge case with unused extra UV-coords being incorrectly\n // referenced by three.js; remove when\n // https://github.com/mrdoob/three.js/pull/23974 is merged.\n if (material.aoMap) {\n const { gltf, threeObjectMap } = prepared[$correlatedSceneGraph$1];\n const gltfRef = threeObjectMap.get(material);\n if (gltf.materials != null && gltfRef != null &&\n gltfRef.materials != null) {\n const gltfMaterial = gltf.materials[gltfRef.materials];\n if (gltfMaterial.occlusionTexture &&\n gltfMaterial.occlusionTexture.texCoord === 0 &&\n geometry.attributes.uv != null) {\n geometry.setAttribute('uv2', geometry.attributes.uv);\n }\n }\n }\n }\n });\n return prepared;\n }\n get correlatedSceneGraph() {\n return this[$preparedGLTF][$correlatedSceneGraph$1];\n }\n /**\n * @override\n */\n [$clone]() {\n const clone = super[$clone]();\n const sourceUUIDToClonedMaterial = new Map();\n clone.scene.traverse((node) => {\n // Materials aren't cloned when cloning meshes; geometry\n // and materials are copied by reference. This is necessary\n // for the same model to be used twice with different\n // scene-graph operations.\n if (node.isMesh) {\n const mesh = node;\n const material = mesh.material;\n if (material != null) {\n if (sourceUUIDToClonedMaterial.has(material.uuid)) {\n mesh.material = sourceUUIDToClonedMaterial.get(material.uuid);\n return;\n }\n mesh.material = material.clone();\n sourceUUIDToClonedMaterial.set(material.uuid, mesh.material);\n }\n }\n });\n // Cross-correlate the scene graph by relying on information in the\n // current scene graph; without this step, relationships between the\n // Three.js object graph and the glTF scene graph will be lost.\n clone[$correlatedSceneGraph$1] =\n CorrelatedSceneGraph.from(clone, this.correlatedSceneGraph);\n return clone;\n }\n}\n\n// https://github.com/mrdoob/three.js/issues/5552\n// http://en.wikipedia.org/wiki/RGBE_image_format\n\nclass RGBELoader extends DataTextureLoader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.type = HalfFloatType;\n\n\t}\n\n\t// adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n\n\tparse( buffer ) {\n\n\t\tconst\n\t\t\t/* return codes for rgbe routines */\n\t\t\t//RGBE_RETURN_SUCCESS = 0,\n\t\t\tRGBE_RETURN_FAILURE = - 1,\n\n\t\t\t/* default error routine. change this to change error handling */\n\t\t\trgbe_read_error = 1,\n\t\t\trgbe_write_error = 2,\n\t\t\trgbe_format_error = 3,\n\t\t\trgbe_memory_error = 4,\n\t\t\trgbe_error = function ( rgbe_error_code, msg ) {\n\n\t\t\t\tswitch ( rgbe_error_code ) {\n\n\t\t\t\t\tcase rgbe_read_error: console.error( 'THREE.RGBELoader Read Error: ' + ( msg || '' ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase rgbe_write_error: console.error( 'THREE.RGBELoader Write Error: ' + ( msg || '' ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase rgbe_format_error: console.error( 'THREE.RGBELoader Bad File Format: ' + ( msg || '' ) );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\tcase rgbe_memory_error: console.error( 'THREE.RGBELoader: Error: ' + ( msg || '' ) );\n\n\t\t\t\t}\n\n\t\t\t\treturn RGBE_RETURN_FAILURE;\n\n\t\t\t},\n\n\t\t\t/* offsets to red, green, and blue components in a data (float) pixel */\n\t\t\t//RGBE_DATA_RED = 0,\n\t\t\t//RGBE_DATA_GREEN = 1,\n\t\t\t//RGBE_DATA_BLUE = 2,\n\n\t\t\t/* number of floats per pixel, use 4 since stored in rgba image format */\n\t\t\t//RGBE_DATA_SIZE = 4,\n\n\t\t\t/* flags indicating which fields in an rgbe_header_info are valid */\n\t\t\tRGBE_VALID_PROGRAMTYPE = 1,\n\t\t\tRGBE_VALID_FORMAT = 2,\n\t\t\tRGBE_VALID_DIMENSIONS = 4,\n\n\t\t\tNEWLINE = '\\n',\n\n\t\t\tfgets = function ( buffer, lineLimit, consume ) {\n\n\t\t\t\tconst chunkSize = 128;\n\n\t\t\t\tlineLimit = ! lineLimit ? 1024 : lineLimit;\n\t\t\t\tlet p = buffer.pos,\n\t\t\t\t\ti = - 1, len = 0, s = '',\n\t\t\t\t\tchunk = String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\twhile ( ( 0 > ( i = chunk.indexOf( NEWLINE ) ) ) && ( len < lineLimit ) && ( p < buffer.byteLength ) ) {\n\n\t\t\t\t\ts += chunk; len += chunk.length;\n\t\t\t\t\tp += chunkSize;\n\t\t\t\t\tchunk += String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( - 1 < i ) {\n\n\t\t\t\t\t/*for (i=l-1; i>=0; i--) {\n\t\t\t\t\t\tbyteCode = m.charCodeAt(i);\n\t\t\t\t\t\tif (byteCode > 0x7f && byteCode <= 0x7ff) byteLen++;\n\t\t\t\t\t\telse if (byteCode > 0x7ff && byteCode <= 0xffff) byteLen += 2;\n\t\t\t\t\t\tif (byteCode >= 0xDC00 && byteCode <= 0xDFFF) i--; //trail surrogate\n\t\t\t\t\t}*/\n\t\t\t\t\tif ( false !== consume ) buffer.pos += len + i + 1;\n\t\t\t\t\treturn s + chunk.slice( 0, i );\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/* minimal header reading. modify if you want to parse more information */\n\t\t\tRGBE_ReadHeader = function ( buffer ) {\n\n\n\t\t\t\t// regexes to parse header info fields\n\t\t\t\tconst magic_token_re = /^#\\?(\\S+)/,\n\t\t\t\t\tgamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\texposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\tformat_re = /^\\s*FORMAT=(\\S+)\\s*$/,\n\t\t\t\t\tdimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,\n\n\t\t\t\t\t// RGBE format header struct\n\t\t\t\t\theader = {\n\n\t\t\t\t\t\tvalid: 0, /* indicate which fields are valid */\n\n\t\t\t\t\t\tstring: '', /* the actual header string */\n\n\t\t\t\t\t\tcomments: '', /* comments found in header */\n\n\t\t\t\t\t\tprogramtype: 'RGBE', /* listed at beginning of file to identify it after \"#?\". defaults to \"RGBE\" */\n\n\t\t\t\t\t\tformat: '', /* RGBE format, default 32-bit_rle_rgbe */\n\n\t\t\t\t\t\tgamma: 1.0, /* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */\n\n\t\t\t\t\t\texposure: 1.0, /* a value of 1.0 in an image corresponds to watts/steradian/m^2. defaults to 1.0 */\n\n\t\t\t\t\t\twidth: 0, height: 0 /* image dimensions, width/height */\n\n\t\t\t\t\t};\n\n\t\t\t\tlet line, match;\n\n\t\t\t\tif ( buffer.pos >= buffer.byteLength || ! ( line = fgets( buffer ) ) ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_read_error, 'no header found' );\n\n\t\t\t\t}\n\n\t\t\t\t/* if you want to require the magic token then uncomment the next line */\n\t\t\t\tif ( ! ( match = line.match( magic_token_re ) ) ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'bad initial token' );\n\n\t\t\t\t}\n\n\t\t\t\theader.valid |= RGBE_VALID_PROGRAMTYPE;\n\t\t\t\theader.programtype = match[ 1 ];\n\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\twhile ( true ) {\n\n\t\t\t\t\tline = fgets( buffer );\n\t\t\t\t\tif ( false === line ) break;\n\t\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\t\tif ( '#' === line.charAt( 0 ) ) {\n\n\t\t\t\t\t\theader.comments += line + '\\n';\n\t\t\t\t\t\tcontinue; // comment line\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( gamma_re ) ) {\n\n\t\t\t\t\t\theader.gamma = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( exposure_re ) ) {\n\n\t\t\t\t\t\theader.exposure = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( format_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_FORMAT;\n\t\t\t\t\t\theader.format = match[ 1 ];//'32-bit_rle_rgbe';\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( dimensions_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_DIMENSIONS;\n\t\t\t\t\t\theader.height = parseInt( match[ 1 ], 10 );\n\t\t\t\t\t\theader.width = parseInt( match[ 2 ], 10 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( header.valid & RGBE_VALID_FORMAT ) && ( header.valid & RGBE_VALID_DIMENSIONS ) ) break;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_FORMAT ) ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'missing format specifier' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_DIMENSIONS ) ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'missing image size specifier' );\n\n\t\t\t\t}\n\n\t\t\t\treturn header;\n\n\t\t\t},\n\n\t\t\tRGBE_ReadPixels_RLE = function ( buffer, w, h ) {\n\n\t\t\t\tconst scanline_width = w;\n\n\t\t\t\tif (\n\t\t\t\t\t// run length encoding is not allowed so read flat\n\t\t\t\t\t( ( scanline_width < 8 ) || ( scanline_width > 0x7fff ) ) ||\n\t\t\t\t\t// this file is not run length encoded\n\t\t\t\t\t( ( 2 !== buffer[ 0 ] ) || ( 2 !== buffer[ 1 ] ) || ( buffer[ 2 ] & 0x80 ) )\n\t\t\t\t) {\n\n\t\t\t\t\t// return the flat buffer\n\t\t\t\t\treturn new Uint8Array( buffer );\n\n\t\t\t\t}\n\n\t\t\t\tif ( scanline_width !== ( ( buffer[ 2 ] << 8 ) | buffer[ 3 ] ) ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'wrong scanline width' );\n\n\t\t\t\t}\n\n\t\t\t\tconst data_rgba = new Uint8Array( 4 * w * h );\n\n\t\t\t\tif ( ! data_rgba.length ) {\n\n\t\t\t\t\treturn rgbe_error( rgbe_memory_error, 'unable to allocate buffer space' );\n\n\t\t\t\t}\n\n\t\t\t\tlet offset = 0, pos = 0;\n\n\t\t\t\tconst ptr_end = 4 * scanline_width;\n\t\t\t\tconst rgbeStart = new Uint8Array( 4 );\n\t\t\t\tconst scanline_buffer = new Uint8Array( ptr_end );\n\t\t\t\tlet num_scanlines = h;\n\n\t\t\t\t// read in each successive scanline\n\t\t\t\twhile ( ( num_scanlines > 0 ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\tif ( pos + 4 > buffer.byteLength ) {\n\n\t\t\t\t\t\treturn rgbe_error( rgbe_read_error );\n\n\t\t\t\t\t}\n\n\t\t\t\t\trgbeStart[ 0 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 1 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 2 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 3 ] = buffer[ pos ++ ];\n\n\t\t\t\t\tif ( ( 2 != rgbeStart[ 0 ] ) || ( 2 != rgbeStart[ 1 ] ) || ( ( ( rgbeStart[ 2 ] << 8 ) | rgbeStart[ 3 ] ) != scanline_width ) ) {\n\n\t\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'bad rgbe scanline format' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// read each of the four channels for the scanline into the buffer\n\t\t\t\t\t// first red, then green, then blue, then exponent\n\t\t\t\t\tlet ptr = 0, count;\n\n\t\t\t\t\twhile ( ( ptr < ptr_end ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\t\tcount = buffer[ pos ++ ];\n\t\t\t\t\t\tconst isEncodedRun = count > 128;\n\t\t\t\t\t\tif ( isEncodedRun ) count -= 128;\n\n\t\t\t\t\t\tif ( ( 0 === count ) || ( ptr + count > ptr_end ) ) {\n\n\t\t\t\t\t\t\treturn rgbe_error( rgbe_format_error, 'bad scanline data' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( isEncodedRun ) {\n\n\t\t\t\t\t\t\t// a (encoded) run of the same value\n\t\t\t\t\t\t\tconst byteValue = buffer[ pos ++ ];\n\t\t\t\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\t\t\t\tscanline_buffer[ ptr ++ ] = byteValue;\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//ptr += count;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// a literal-run\n\t\t\t\t\t\t\tscanline_buffer.set( buffer.subarray( pos, pos + count ), ptr );\n\t\t\t\t\t\t\tptr += count; pos += count;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\n\t\t\t\t\t// now convert data from buffer into rgba\n\t\t\t\t\t// first red, then green, then blue, then exponent (alpha)\n\t\t\t\t\tconst l = scanline_width; //scanline_buffer.byteLength;\n\t\t\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\t\t\tlet off = 0;\n\t\t\t\t\t\tdata_rgba[ offset ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 1 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 2 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 3 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toffset += 4;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tnum_scanlines --;\n\n\t\t\t\t}\n\n\t\t\t\treturn data_rgba;\n\n\t\t\t};\n\n\t\tconst RGBEByteToRGBFloat = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\tdestArray[ destOffset + 0 ] = sourceArray[ sourceOffset + 0 ] * scale;\n\t\t\tdestArray[ destOffset + 1 ] = sourceArray[ sourceOffset + 1 ] * scale;\n\t\t\tdestArray[ destOffset + 2 ] = sourceArray[ sourceOffset + 2 ] * scale;\n\t\t\tdestArray[ destOffset + 3 ] = 1;\n\n\t\t};\n\n\t\tconst RGBEByteToRGBHalf = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\t// clamping to 65504, the maximum representable value in float16\n\t\t\tdestArray[ destOffset + 0 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 0 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 1 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 1 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 2 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 2 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 3 ] = DataUtils.toHalfFloat( 1 );\n\n\t\t};\n\n\t\tconst byteArray = new Uint8Array( buffer );\n\t\tbyteArray.pos = 0;\n\t\tconst rgbe_header_info = RGBE_ReadHeader( byteArray );\n\n\t\tif ( RGBE_RETURN_FAILURE !== rgbe_header_info ) {\n\n\t\t\tconst w = rgbe_header_info.width,\n\t\t\t\th = rgbe_header_info.height,\n\t\t\t\timage_rgba_data = RGBE_ReadPixels_RLE( byteArray.subarray( byteArray.pos ), w, h );\n\n\t\t\tif ( RGBE_RETURN_FAILURE !== image_rgba_data ) {\n\n\t\t\t\tlet data, format, type;\n\t\t\t\tlet numElements;\n\n\t\t\t\tswitch ( this.type ) {\n\n\t\t\t\t\tcase FloatType:\n\n\t\t\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\t\t\tconst floatArray = new Float32Array( numElements * 4 );\n\n\t\t\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\t\t\tRGBEByteToRGBFloat( image_rgba_data, j * 4, floatArray, j * 4 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdata = floatArray;\n\t\t\t\t\t\ttype = FloatType;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase HalfFloatType:\n\n\t\t\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\t\t\tconst halfArray = new Uint16Array( numElements * 4 );\n\n\t\t\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\t\t\tRGBEByteToRGBHalf( image_rgba_data, j * 4, halfArray, j * 4 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdata = halfArray;\n\t\t\t\t\t\ttype = HalfFloatType;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tconsole.error( 'THREE.RGBELoader: unsupported type: ', this.type );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\twidth: w, height: h,\n\t\t\t\t\tdata: data,\n\t\t\t\t\theader: rgbe_header_info.string,\n\t\t\t\t\tgamma: rgbe_header_info.gamma,\n\t\t\t\t\texposure: rgbe_header_info.exposure,\n\t\t\t\t\tformat: format,\n\t\t\t\t\ttype: type\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tsetDataType( value ) {\n\n\t\tthis.type = value;\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tfunction onLoadCallback( texture, texData ) {\n\n\t\t\tswitch ( texture.type ) {\n\n\t\t\t\tcase FloatType:\n\n\t\t\t\t\ttexture.encoding = LinearEncoding;\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\ttexture.magFilter = LinearFilter;\n\t\t\t\t\ttexture.generateMipmaps = false;\n\t\t\t\t\ttexture.flipY = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase HalfFloatType:\n\n\t\t\t\t\ttexture.encoding = LinearEncoding;\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\ttexture.magFilter = LinearFilter;\n\t\t\t\t\ttexture.generateMipmaps = false;\n\t\t\t\t\ttexture.flipY = true;\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}\n\n\t\treturn super.load( url, onLoadCallback, onProgress, onError );\n\n\t}\n\n}\n\n/* @license\n * Copyright 2021 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass EnvironmentScene extends Scene {\n constructor() {\n super();\n this.position.y = -3.5;\n const geometry = new BoxGeometry();\n geometry.deleteAttribute('uv');\n const roomMaterial = new MeshStandardMaterial({ metalness: 0, side: BackSide });\n const boxMaterial = new MeshStandardMaterial({ metalness: 0 });\n const mainLight = new PointLight(0xffffff, 500.0, 28, 2);\n mainLight.position.set(0.418, 16.199, 0.300);\n this.add(mainLight);\n const room = new Mesh(geometry, roomMaterial);\n room.position.set(-0.757, 13.219, 0.717);\n room.scale.set(31.713, 28.305, 28.591);\n this.add(room);\n const box1 = new Mesh(geometry, boxMaterial);\n box1.position.set(-10.906, 2.009, 1.846);\n box1.rotation.set(0, -0.195, 0);\n box1.scale.set(2.328, 7.905, 4.651);\n this.add(box1);\n const box2 = new Mesh(geometry, boxMaterial);\n box2.position.set(-5.607, -0.754, -0.758);\n box2.rotation.set(0, 0.994, 0);\n box2.scale.set(1.970, 1.534, 3.955);\n this.add(box2);\n const box3 = new Mesh(geometry, boxMaterial);\n box3.position.set(6.167, 0.857, 7.803);\n box3.rotation.set(0, 0.561, 0);\n box3.scale.set(3.927, 6.285, 3.687);\n this.add(box3);\n const box4 = new Mesh(geometry, boxMaterial);\n box4.position.set(-2.017, 0.018, 6.124);\n box4.rotation.set(0, 0.333, 0);\n box4.scale.set(2.002, 4.566, 2.064);\n this.add(box4);\n const box5 = new Mesh(geometry, boxMaterial);\n box5.position.set(2.291, -0.756, -2.621);\n box5.rotation.set(0, -0.286, 0);\n box5.scale.set(1.546, 1.552, 1.496);\n this.add(box5);\n const box6 = new Mesh(geometry, boxMaterial);\n box6.position.set(-2.193, -0.369, -5.547);\n box6.rotation.set(0, 0.516, 0);\n box6.scale.set(3.875, 3.487, 2.986);\n this.add(box6);\n // -x right\n const light1 = new Mesh(geometry, this.createAreaLightMaterial(50));\n light1.position.set(-16.116, 14.37, 8.208);\n light1.scale.set(0.1, 2.428, 2.739);\n this.add(light1);\n // -x left\n const light2 = new Mesh(geometry, this.createAreaLightMaterial(50));\n light2.position.set(-16.109, 18.021, -8.207);\n light2.scale.set(0.1, 2.425, 2.751);\n this.add(light2);\n // +x\n const light3 = new Mesh(geometry, this.createAreaLightMaterial(17));\n light3.position.set(14.904, 12.198, -1.832);\n light3.scale.set(0.15, 4.265, 6.331);\n this.add(light3);\n // +z\n const light4 = new Mesh(geometry, this.createAreaLightMaterial(43));\n light4.position.set(-0.462, 8.89, 14.520);\n light4.scale.set(4.38, 5.441, 0.088);\n this.add(light4);\n // -z\n const light5 = new Mesh(geometry, this.createAreaLightMaterial(20));\n light5.position.set(3.235, 11.486, -12.541);\n light5.scale.set(2.5, 2.0, 0.1);\n this.add(light5);\n // +y\n const light6 = new Mesh(geometry, this.createAreaLightMaterial(100));\n light6.position.set(0.0, 20.0, 0.0);\n light6.scale.set(1.0, 0.1, 1.0);\n this.add(light6);\n }\n createAreaLightMaterial(intensity) {\n const material = new MeshBasicMaterial();\n material.color.setScalar(intensity);\n return material;\n }\n}\n\n/* @license\n * Copyright 2021 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass EnvironmentSceneAlt extends Scene {\n constructor() {\n super();\n this.position.y = -3.5;\n const geometry = new BoxGeometry();\n geometry.deleteAttribute('uv');\n const roomMaterial = new MeshStandardMaterial({ metalness: 0, side: BackSide });\n const boxMaterial = new MeshStandardMaterial({ metalness: 0 });\n const mainLight = new PointLight(0xffffff, 400.0, 28, 2);\n mainLight.position.set(0.5, 14.0, 0.5);\n this.add(mainLight);\n const room = new Mesh(geometry, roomMaterial);\n room.position.set(0.0, 13.2, 0.0);\n room.scale.set(31.5, 28.5, 31.5);\n this.add(room);\n const box1 = new Mesh(geometry, boxMaterial);\n box1.position.set(-10.906, -1.0, 1.846);\n box1.rotation.set(0, -0.195, 0);\n box1.scale.set(2.328, 7.905, 4.651);\n this.add(box1);\n const box2 = new Mesh(geometry, boxMaterial);\n box2.position.set(-5.607, -0.754, -0.758);\n box2.rotation.set(0, 0.994, 0);\n box2.scale.set(1.970, 1.534, 3.955);\n this.add(box2);\n const box3 = new Mesh(geometry, boxMaterial);\n box3.position.set(6.167, -0.16, 7.803);\n box3.rotation.set(0, 0.561, 0);\n box3.scale.set(3.927, 6.285, 3.687);\n this.add(box3);\n const box4 = new Mesh(geometry, boxMaterial);\n box4.position.set(-2.017, 0.018, 6.124);\n box4.rotation.set(0, 0.333, 0);\n box4.scale.set(2.002, 4.566, 2.064);\n this.add(box4);\n const box5 = new Mesh(geometry, boxMaterial);\n box5.position.set(2.291, -0.756, -2.621);\n box5.rotation.set(0, -0.286, 0);\n box5.scale.set(1.546, 1.552, 1.496);\n this.add(box5);\n const box6 = new Mesh(geometry, boxMaterial);\n box6.position.set(-2.193, -0.369, -5.547);\n box6.rotation.set(0, 0.516, 0);\n box6.scale.set(3.875, 3.487, 2.986);\n this.add(box6);\n // -x_left\n const light1 = new Mesh(geometry, this.createAreaLightMaterial(80));\n light1.position.set(-14.0, 10.0, 8.0);\n light1.scale.set(0.1, 2.5, 2.5);\n this.add(light1);\n // -x_right\n const light2 = new Mesh(geometry, this.createAreaLightMaterial(80));\n light2.position.set(-14.0, 14.0, -4.0);\n light2.scale.set(0.1, 2.5, 2.5);\n this.add(light2);\n // +x only on light\n const light3 = new Mesh(geometry, this.createAreaLightMaterial(23));\n light3.position.set(14.0, 12.0, 0.0);\n light3.scale.set(0.1, 5.0, 5.0);\n this.add(light3);\n // +z\n const light4 = new Mesh(geometry, this.createAreaLightMaterial(16));\n light4.position.set(0.0, 9.0, 14.0);\n light4.scale.set(5.0, 5.0, 0.1);\n this.add(light4);\n // -z right\n const light5 = new Mesh(geometry, this.createAreaLightMaterial(80));\n light5.position.set(7.0, 8.0, -14.0);\n light5.scale.set(2.5, 2.5, 0.1);\n this.add(light5);\n // -z left\n const light6 = new Mesh(geometry, this.createAreaLightMaterial(80));\n light6.position.set(-7.0, 16.0, -14.0);\n light6.scale.set(2.5, 2.5, 0.1);\n this.add(light6);\n // +y\n const light7 = new Mesh(geometry, this.createAreaLightMaterial(1));\n light7.position.set(0.0, 20.0, 0.0);\n light7.scale.set(0.1, 0.1, 0.1);\n this.add(light7);\n }\n createAreaLightMaterial(intensity) {\n const material = new MeshBasicMaterial();\n material.color.setScalar(intensity);\n return material;\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst GENERATED_SIGMA = 0.04;\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\nconst HDR_FILE_RE = /\\.hdr(\\.js)?$/;\nconst ldrLoader = new TextureLoader();\nconst hdrLoader = new RGBELoader();\nhdrLoader.setDataType(HalfFloatType);\nclass TextureUtils extends EventDispatcher {\n constructor(threeRenderer) {\n super();\n this.threeRenderer = threeRenderer;\n this.generatedEnvironmentMap = null;\n this.generatedEnvironmentMapAlt = null;\n this.skyboxCache = new Map();\n this.blurMaterial = null;\n this.blurScene = null;\n }\n async load(url, progressCallback = () => { }) {\n try {\n const isHDR = HDR_FILE_RE.test(url);\n const loader = isHDR ? hdrLoader : ldrLoader;\n const texture = await new Promise((resolve, reject) => loader.load(url, resolve, (event) => {\n progressCallback(event.loaded / event.total * 0.9);\n }, reject));\n progressCallback(1.0);\n texture.name = url;\n texture.mapping = EquirectangularReflectionMapping;\n if (!isHDR) {\n texture.encoding = sRGBEncoding;\n }\n return texture;\n }\n finally {\n if (progressCallback) {\n progressCallback(1);\n }\n }\n }\n /**\n * Returns a { skybox, environmentMap } object with the targets/textures\n * accordingly. `skybox` is a WebGLRenderCubeTarget, and `environmentMap`\n * is a Texture from a WebGLRenderCubeTarget.\n */\n async generateEnvironmentMapAndSkybox(skyboxUrl = null, environmentMapUrl = null, options = {}) {\n const { progressTracker } = options;\n const useAltEnvironment = environmentMapUrl === 'neutral';\n if (useAltEnvironment === true) {\n environmentMapUrl = null;\n }\n environmentMapUrl = deserializeUrl(environmentMapUrl);\n let skyboxLoads = Promise.resolve(null);\n let environmentMapLoads;\n // If we have a skybox URL, attempt to load it as a cubemap\n if (!!skyboxUrl) {\n skyboxLoads = this.loadEquirectFromUrl(skyboxUrl, progressTracker);\n }\n if (!!environmentMapUrl) {\n // We have an available environment map URL\n environmentMapLoads =\n this.loadEquirectFromUrl(environmentMapUrl, progressTracker);\n }\n else if (!!skyboxUrl) {\n // Fallback to deriving the environment map from an available skybox\n environmentMapLoads =\n this.loadEquirectFromUrl(skyboxUrl, progressTracker);\n }\n else {\n // Fallback to generating the environment map\n environmentMapLoads = useAltEnvironment === true ?\n this.loadGeneratedEnvironmentMapAlt() :\n this.loadGeneratedEnvironmentMap();\n }\n let [environmentMap, skybox] = await Promise.all([environmentMapLoads, skyboxLoads]);\n if (environmentMap == null) {\n throw new Error('Failed to load environment map.');\n }\n return { environmentMap, skybox };\n }\n /**\n * Loads an equirect Texture from a given URL, for use as a skybox.\n */\n async loadEquirectFromUrl(url, progressTracker) {\n if (!this.skyboxCache.has(url)) {\n const progressCallback = progressTracker ? progressTracker.beginActivity() : () => { };\n const skyboxMapLoads = this.load(url, progressCallback);\n this.skyboxCache.set(url, skyboxMapLoads);\n }\n return this.skyboxCache.get(url);\n }\n async GenerateEnvironmentMap(scene, name) {\n await timePasses();\n const renderer = this.threeRenderer;\n const cubeTarget = new WebGLCubeRenderTarget(256, {\n generateMipmaps: false,\n type: HalfFloatType,\n format: RGBAFormat,\n encoding: LinearEncoding,\n depthBuffer: true\n });\n const cubeCamera = new CubeCamera(0.1, 100, cubeTarget);\n const generatedEnvironmentMap = cubeCamera.renderTarget.texture;\n generatedEnvironmentMap.name = name;\n const outputEncoding = renderer.outputEncoding;\n const toneMapping = renderer.toneMapping;\n renderer.toneMapping = NoToneMapping;\n renderer.outputEncoding = LinearEncoding;\n cubeCamera.update(renderer, scene);\n this.blurCubemap(cubeTarget, GENERATED_SIGMA);\n renderer.toneMapping = toneMapping;\n renderer.outputEncoding = outputEncoding;\n return generatedEnvironmentMap;\n }\n /**\n * Loads a dynamically generated environment map.\n */\n async loadGeneratedEnvironmentMap() {\n if (this.generatedEnvironmentMap == null) {\n this.generatedEnvironmentMap =\n this.GenerateEnvironmentMap(new EnvironmentScene(), 'default');\n }\n return this.generatedEnvironmentMap;\n }\n /**\n * Loads a dynamically generated environment map, designed to be neutral and\n * color-preserving. Shows less contrast around the different sides of the\n * object.\n */\n async loadGeneratedEnvironmentMapAlt() {\n if (this.generatedEnvironmentMapAlt == null) {\n this.generatedEnvironmentMapAlt =\n this.GenerateEnvironmentMap(new EnvironmentSceneAlt(), 'neutral');\n }\n return this.generatedEnvironmentMapAlt;\n }\n blurCubemap(cubeTarget, sigma) {\n if (this.blurMaterial == null) {\n this.blurMaterial = this.getBlurShader(MAX_SAMPLES);\n const box = new BoxGeometry();\n const blurMesh = new Mesh(box, this.blurMaterial);\n this.blurScene = new Scene();\n this.blurScene.add(blurMesh);\n }\n const tempTarget = cubeTarget.clone();\n this.halfblur(cubeTarget, tempTarget, sigma, 'latitudinal');\n this.halfblur(tempTarget, cubeTarget, sigma, 'longitudinal');\n // Disposing this target after we're done with it somehow corrupts Safari's\n // whole graphics driver. It's random, but occurs more frequently on\n // lower-powered GPUs (macbooks with intel graphics, older iPhones). It goes\n // beyond just messing up the PMREM, as it also occasionally causes\n // visible corruption on the canvas and even on the rest of the page.\n /** tempTarget.dispose(); */\n }\n halfblur(targetIn, targetOut, sigmaRadians, direction) {\n // Number of standard deviations at which to cut off the discrete\n // approximation.\n const STANDARD_DEVIATIONS = 3;\n const pixels = targetIn.width;\n const radiansPerPixel = isFinite(sigmaRadians) ?\n Math.PI / (2 * pixels) :\n 2 * Math.PI / (2 * MAX_SAMPLES - 1);\n const sigmaPixels = sigmaRadians / radiansPerPixel;\n const samples = isFinite(sigmaRadians) ?\n 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) :\n MAX_SAMPLES;\n if (samples > MAX_SAMPLES) {\n console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`);\n }\n const weights = [];\n let sum = 0;\n for (let i = 0; i < MAX_SAMPLES; ++i) {\n const x = i / sigmaPixels;\n const weight = Math.exp(-x * x / 2);\n weights.push(weight);\n if (i == 0) {\n sum += weight;\n }\n else if (i < samples) {\n sum += 2 * weight;\n }\n }\n for (let i = 0; i < weights.length; i++) {\n weights[i] = weights[i] / sum;\n }\n const blurUniforms = this.blurMaterial.uniforms;\n blurUniforms['envMap'].value = targetIn.texture;\n blurUniforms['samples'].value = samples;\n blurUniforms['weights'].value = weights;\n blurUniforms['latitudinal'].value = direction === 'latitudinal';\n blurUniforms['dTheta'].value = radiansPerPixel;\n const cubeCamera = new CubeCamera(0.1, 100, targetOut);\n cubeCamera.update(this.threeRenderer, this.blurScene);\n }\n getBlurShader(maxSamples) {\n const weights = new Float32Array(maxSamples);\n const poleAxis = new Vector3(0, 1, 0);\n const shaderMaterial = new ShaderMaterial({\n name: 'SphericalGaussianBlur',\n defines: { 'n': maxSamples },\n uniforms: {\n 'envMap': { value: null },\n 'samples': { value: 1 },\n 'weights': { value: weights },\n 'latitudinal': { value: false },\n 'dTheta': { value: 0 },\n 'poleAxis': { value: poleAxis }\n },\n vertexShader: /* glsl */ `\n \n varying vec3 vOutputDirection;\n \n void main() {\n \n vOutputDirection = vec3( position );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n \n }\n `,\n fragmentShader: /* glsl */ `\n varying vec3 vOutputDirection;\n \n uniform samplerCube envMap;\n uniform int samples;\n uniform float weights[ n ];\n uniform bool latitudinal;\n uniform float dTheta;\n uniform vec3 poleAxis;\n \n vec3 getSample( float theta, vec3 axis ) {\n \n float cosTheta = cos( theta );\n // Rodrigues' axis-angle rotation\n vec3 sampleDirection = vOutputDirection * cosTheta\n + cross( axis, vOutputDirection ) * sin( theta )\n + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n \n return vec3( textureCube( envMap, sampleDirection ) );\n \n }\n \n void main() {\n \n vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n \n if ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n \n axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n \n }\n \n axis = normalize( axis );\n \n gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n \n for ( int i = 1; i < n; i++ ) {\n \n if ( i >= samples ) {\n \n break;\n \n }\n \n float theta = dTheta * float( i );\n gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n \n }\n }\n `,\n blending: NoBlending,\n depthTest: false,\n depthWrite: false,\n side: BackSide\n });\n return shaderMaterial;\n }\n async dispose() {\n for (const [, promise] of this.skyboxCache) {\n const skybox = await promise;\n skybox.dispose();\n }\n if (this.generatedEnvironmentMap != null) {\n (await this.generatedEnvironmentMap).dispose();\n this.generatedEnvironmentMap = null;\n }\n if (this.generatedEnvironmentMapAlt != null) {\n (await this.generatedEnvironmentMapAlt).dispose();\n this.generatedEnvironmentMapAlt = null;\n }\n if (this.blurMaterial != null) {\n this.blurMaterial.dispose();\n }\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Between 0 and 1: larger means the average responds faster and is less smooth.\nconst DURATION_DECAY = 0.2;\nconst LOW_FRAME_DURATION_MS = 18;\nconst HIGH_FRAME_DURATION_MS = 26;\nconst MAX_AVG_CHANGE_MS = 2;\nconst SCALE_STEPS = [1, 0.79, 0.62, 0.5, 0.4, 0.31, 0.25];\nconst DEFAULT_LAST_STEP = 3;\nconst DEFAULT_POWER_PREFERENCE = 'high-performance';\n/**\n * Registers canvases with Canvas2DRenderingContexts and renders them\n * all in the same WebGLRenderingContext, spitting out textures to apply\n * to the canvases. Creates a fullscreen WebGL canvas that is not added\n * to the DOM, and on each frame, renders each registered canvas on a portion\n * of the WebGL canvas, and applies the texture on the registered canvas.\n *\n * In the future, can use ImageBitmapRenderingContext instead of\n * Canvas2DRenderingContext if supported for cheaper transfering of\n * the texture.\n */\nclass Renderer extends EventDispatcher {\n constructor(options) {\n super();\n this.loader = new CachingGLTFLoader(ModelViewerGLTFInstance);\n this.width = 0;\n this.height = 0;\n this.dpr = 1;\n this.debugger = null;\n this.scenes = new Set();\n this.multipleScenesVisible = false;\n this.scaleStep = 0;\n this.lastStep = DEFAULT_LAST_STEP;\n this.avgFrameDuration = (HIGH_FRAME_DURATION_MS + LOW_FRAME_DURATION_MS) / 2;\n this.onWebGLContextLost = (event) => {\n this.dispatchEvent({ type: 'contextlost', sourceEvent: event });\n };\n this.onWebGLContextRestored = () => {\n var _a;\n (_a = this.textureUtils) === null || _a === void 0 ? void 0 : _a.dispose();\n this.textureUtils = new TextureUtils(this.threeRenderer);\n for (const scene of this.scenes) {\n scene.element[$updateEnvironment]();\n }\n };\n this.dpr = resolveDpr();\n this.canvas3D = document.createElement('canvas');\n this.canvas3D.id = 'webgl-canvas';\n try {\n this.threeRenderer = new WebGLRenderer({\n canvas: this.canvas3D,\n alpha: true,\n antialias: true,\n powerPreference: options.powerPreference,\n preserveDrawingBuffer: true\n });\n this.threeRenderer.autoClear = true;\n this.threeRenderer.outputEncoding = sRGBEncoding;\n this.threeRenderer.physicallyCorrectLights = true;\n this.threeRenderer.setPixelRatio(1); // handle pixel ratio externally\n this.debugger = !!options.debug ? new Debugger(this) : null;\n this.threeRenderer.debug = { checkShaderErrors: !!this.debugger };\n // ACESFilmicToneMapping appears to be the most \"saturated\",\n // and similar to Filament's gltf-viewer.\n this.threeRenderer.toneMapping = ACESFilmicToneMapping;\n }\n catch (error) {\n console.warn(error);\n }\n this.arRenderer = new ARRenderer(this);\n this.textureUtils =\n this.canRender ? new TextureUtils(this.threeRenderer) : null;\n CachingGLTFLoader.initializeKTX2Loader(this.threeRenderer);\n this.canvas3D.addEventListener('webglcontextlost', this.onWebGLContextLost);\n this.canvas3D.addEventListener('webglcontextrestored', this.onWebGLContextRestored);\n this.updateRendererSize();\n this.lastTick = performance.now();\n this.avgFrameDuration = 0;\n }\n static get singleton() {\n return this._singleton;\n }\n static resetSingleton() {\n const elements = this._singleton.dispose();\n for (const element of elements) {\n element.disconnectedCallback();\n }\n this._singleton = new Renderer({\n powerPreference: (self.ModelViewerElement || {})\n .powerPreference ||\n DEFAULT_POWER_PREFERENCE,\n debug: isDebugMode()\n });\n for (const element of elements) {\n element.connectedCallback();\n }\n }\n get canRender() {\n return this.threeRenderer != null;\n }\n get scaleFactor() {\n return SCALE_STEPS[this.scaleStep];\n }\n set minScale(scale) {\n let i = 1;\n while (i < SCALE_STEPS.length) {\n if (SCALE_STEPS[i] < scale) {\n break;\n }\n ++i;\n }\n this.lastStep = i - 1;\n }\n /**\n * Updates the renderer's size based on the largest scene and any changes to\n * device pixel ratio.\n */\n updateRendererSize() {\n const dpr = resolveDpr();\n if (dpr !== this.dpr) {\n // If the device pixel ratio has changed due to page zoom, elements\n // specified by % width do not fire a resize event even though their CSS\n // pixel dimensions change, so we force them to update their size here.\n for (const scene of this.scenes) {\n const { element } = scene;\n element[$updateSize](element.getBoundingClientRect());\n }\n }\n // Make the renderer the size of the largest scene\n let width = 0;\n let height = 0;\n for (const scene of this.scenes) {\n width = Math.max(width, scene.width);\n height = Math.max(height, scene.height);\n }\n if (width === this.width && height === this.height && dpr === this.dpr) {\n return;\n }\n this.width = width;\n this.height = height;\n this.dpr = dpr;\n if (this.canRender) {\n this.threeRenderer.setSize(width * dpr, height * dpr, false);\n }\n // Expand the canvas size to make up for shrinking the viewport.\n const scale = this.scaleFactor;\n const widthCSS = width / scale;\n const heightCSS = height / scale;\n // The canvas element must by styled outside of three due to the offscreen\n // canvas not being directly stylable.\n this.canvas3D.style.width = `${widthCSS}px`;\n this.canvas3D.style.height = `${heightCSS}px`;\n // Each scene's canvas must match the renderer size. In general they can be\n // larger than the element that contains them, but the overflow is hidden\n // and only the portion that is shown is copied over.\n for (const scene of this.scenes) {\n const { canvas } = scene;\n canvas.width = Math.round(width * dpr);\n canvas.height = Math.round(height * dpr);\n canvas.style.width = `${widthCSS}px`;\n canvas.style.height = `${heightCSS}px`;\n scene.queueRender();\n }\n }\n updateRendererScale() {\n const scaleStep = this.scaleStep;\n if (this.avgFrameDuration > HIGH_FRAME_DURATION_MS) {\n ++this.scaleStep;\n }\n else if (this.avgFrameDuration < LOW_FRAME_DURATION_MS && this.scaleStep > 0) {\n --this.scaleStep;\n }\n this.scaleStep = Math.min(this.scaleStep, this.lastStep);\n if (scaleStep == this.scaleStep) {\n return;\n }\n const scale = this.scaleFactor;\n this.avgFrameDuration =\n (HIGH_FRAME_DURATION_MS + LOW_FRAME_DURATION_MS) / 2;\n const width = this.width / scale;\n const height = this.height / scale;\n this.canvas3D.style.width = `${width}px`;\n this.canvas3D.style.height = `${height}px`;\n for (const scene of this.scenes) {\n const { style } = scene.canvas;\n style.width = `${width}px`;\n style.height = `${height}px`;\n scene.queueRender();\n this.dispatchRenderScale(scene);\n }\n }\n dispatchRenderScale(scene) {\n const scale = this.scaleFactor;\n const renderedDpr = this.dpr * scale;\n const reason = scale < 1 ? 'GPU throttling' :\n this.dpr !== window.devicePixelRatio ? 'No meta viewport tag' :\n '';\n scene.element.dispatchEvent(new CustomEvent('render-scale', {\n detail: {\n reportedDpr: window.devicePixelRatio,\n renderedDpr: renderedDpr,\n minimumDpr: this.dpr * SCALE_STEPS[this.lastStep],\n pixelWidth: Math.ceil(scene.width * renderedDpr),\n pixelHeight: Math.ceil(scene.height * renderedDpr),\n reason: reason\n }\n }));\n }\n registerScene(scene) {\n this.scenes.add(scene);\n const { canvas } = scene;\n const scale = this.scaleFactor;\n canvas.width = Math.round(this.width * this.dpr);\n canvas.height = Math.round(this.height * this.dpr);\n canvas.style.width = `${this.width / scale}px`;\n canvas.style.height = `${this.height / scale}px`;\n if (this.multipleScenesVisible) {\n canvas.classList.add('show');\n }\n scene.queueRender();\n this.dispatchRenderScale(scene);\n if (this.canRender && this.scenes.size > 0) {\n this.threeRenderer.setAnimationLoop((time, frame) => this.render(time, frame));\n }\n if (this.debugger != null) {\n this.debugger.addScene(scene);\n }\n }\n unregisterScene(scene) {\n this.scenes.delete(scene);\n if (this.canRender && this.scenes.size === 0) {\n this.threeRenderer.setAnimationLoop(null);\n }\n if (this.debugger != null) {\n this.debugger.removeScene(scene);\n }\n }\n displayCanvas(scene) {\n return this.multipleScenesVisible ? scene.element[$canvas] : this.canvas3D;\n }\n /**\n * The function enables an optimization, where when there is only a single\n * element, we can use the renderer's 3D canvas directly for\n * display. Otherwise we need to use the element's 2D canvas and copy the\n * renderer's result into it.\n */\n selectCanvas() {\n let visibleScenes = 0;\n let visibleCanvas = null;\n for (const scene of this.scenes) {\n const { element } = scene;\n if (element.modelIsVisible && scene.externalRenderer == null) {\n ++visibleScenes;\n visibleCanvas = scene.canvas;\n }\n }\n if (visibleCanvas == null) {\n return;\n }\n const multipleScenesVisible = visibleScenes > 1;\n const { canvas3D } = this;\n if (multipleScenesVisible === this.multipleScenesVisible &&\n (multipleScenesVisible ||\n canvas3D.parentElement === visibleCanvas.parentElement)) {\n return;\n }\n this.multipleScenesVisible = multipleScenesVisible;\n if (multipleScenesVisible) {\n canvas3D.classList.remove('show');\n }\n for (const scene of this.scenes) {\n if (scene.externalRenderer != null) {\n continue;\n }\n const canvas = scene.element[$canvas];\n if (multipleScenesVisible) {\n canvas.classList.add('show');\n scene.queueRender();\n }\n else if (scene.canvas === visibleCanvas) {\n scene.canvas.parentElement.appendChild(canvas3D);\n canvas3D.classList.add('show');\n canvas.classList.remove('show');\n scene.queueRender();\n }\n }\n }\n /**\n * Returns an array version of this.scenes where the non-visible ones are\n * first. This allows eager scenes to be rendered before they are visible,\n * without needing the multi-canvas render path.\n */\n orderedScenes() {\n const scenes = [];\n for (const visible of [false, true]) {\n for (const scene of this.scenes) {\n if (scene.element.modelIsVisible === visible) {\n scenes.push(scene);\n }\n }\n }\n return scenes;\n }\n get isPresenting() {\n return this.arRenderer.isPresenting;\n }\n /**\n * This method takes care of updating the element and renderer state based on\n * the time that has passed since the last rendered frame.\n */\n preRender(scene, t, delta) {\n const { element, exposure } = scene;\n element[$tick](t, delta);\n const exposureIsNumber = typeof exposure === 'number' && !self.isNaN(exposure);\n this.threeRenderer.toneMappingExposure = exposureIsNumber ? exposure : 1.0;\n }\n render(t, frame) {\n if (frame != null) {\n this.arRenderer.onWebXRFrame(t, frame);\n return;\n }\n const delta = t - this.lastTick;\n this.lastTick = t;\n if (!this.canRender || this.isPresenting) {\n return;\n }\n this.avgFrameDuration += clamp(DURATION_DECAY * (delta - this.avgFrameDuration), -MAX_AVG_CHANGE_MS, MAX_AVG_CHANGE_MS);\n this.selectCanvas();\n this.updateRendererSize();\n this.updateRendererScale();\n const { dpr, scaleFactor } = this;\n for (const scene of this.orderedScenes()) {\n const { element } = scene;\n if (!element.modelIsVisible && scene.renderCount > 0) {\n continue;\n }\n this.preRender(scene, t, delta);\n if (!scene.shouldRender()) {\n continue;\n }\n if (scene.externalRenderer != null) {\n const camera = scene.getCamera();\n camera.updateMatrix();\n const { matrix, projectionMatrix } = camera;\n const viewMatrix = matrix.elements.slice();\n const target = scene.getTarget();\n viewMatrix[12] += target.x;\n viewMatrix[13] += target.y;\n viewMatrix[14] += target.z;\n scene.externalRenderer.render({\n viewMatrix: viewMatrix,\n projectionMatrix: projectionMatrix.elements\n });\n continue;\n }\n if (!element.modelIsVisible && !this.multipleScenesVisible) {\n // Here we are pre-rendering on the visible canvas, so we must mark the\n // visible scene dirty to ensure it overwrites us.\n for (const visibleScene of this.scenes) {\n if (visibleScene.element.modelIsVisible) {\n visibleScene.queueRender();\n }\n }\n }\n // We avoid using the Three.js PixelRatio and handle it ourselves here so\n // that we can do proper rounding and avoid white boundary pixels.\n const width = Math.min(Math.ceil(scene.width * scaleFactor * dpr), this.canvas3D.width);\n const height = Math.min(Math.ceil(scene.height * scaleFactor * dpr), this.canvas3D.height);\n scene.renderShadow(this.threeRenderer);\n // Need to set the render target in order to prevent\n // clearing the depth from a different buffer\n this.threeRenderer.setRenderTarget(null);\n this.threeRenderer.setViewport(0, Math.floor(this.height * dpr) - height, width, height);\n this.threeRenderer.render(scene, scene.camera);\n if (this.multipleScenesVisible) {\n if (scene.context == null) {\n scene.createContext();\n }\n const context2D = scene.context;\n context2D.clearRect(0, 0, width, height);\n context2D.drawImage(this.canvas3D, 0, 0, width, height, 0, 0, width, height);\n }\n scene.hasRendered();\n if (element.loaded) {\n ++scene.renderCount;\n }\n }\n }\n dispose() {\n if (this.textureUtils != null) {\n this.textureUtils.dispose();\n }\n if (this.threeRenderer != null) {\n this.threeRenderer.dispose();\n }\n this.textureUtils = null;\n this.threeRenderer = null;\n const elements = [];\n for (const scene of this.scenes) {\n elements.push(scene.element);\n }\n this.canvas3D.removeEventListener('webglcontextlost', this.onWebGLContextLost);\n this.canvas3D.removeEventListener('webglcontextrestored', this.onWebGLContextRestored);\n return elements;\n }\n}\nRenderer._singleton = new Renderer({\n powerPreference: (self.ModelViewerElement || {})\n .powerPreference ||\n DEFAULT_POWER_PREFERENCE,\n debug: isDebugMode()\n});\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts a base64 string which represents a data url\n * into a Blob of the same contents.\n */\nconst dataUrlToBlob = async (base64DataUrl) => {\n return new Promise((resolve, reject) => {\n const sliceSize = 512;\n const typeMatch = base64DataUrl.match(/data:(.*);/);\n if (!typeMatch) {\n return reject(new Error(`${base64DataUrl} is not a valid data Url`));\n }\n const type = typeMatch[1];\n const base64 = base64DataUrl.replace(/data:image\\/\\w+;base64,/, '');\n const byteCharacters = atob(base64);\n const byteArrays = [];\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n resolve(new Blob(byteArrays, { type }));\n });\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * ProgressTracker is an event emitter that helps to track the ongoing progress\n * of many simultaneous actions.\n *\n * ProgressTracker reports progress activity in the form of a progress event.\n * The event.detail.totalProgress value indicates the elapsed progress of all\n * activities being tracked by the ProgressTracker.\n *\n * The value of totalProgress is a number that progresses from 0 to 1. The\n * ProgressTracker allows for the lazy accumulation of tracked actions, so the\n * total progress represents a abstract, non-absolute progress towards the\n * completion of all currently tracked events.\n *\n * When all currently tracked activities are finished, the ProgressTracker\n * emits one final progress event and then resets the list of its currently\n * tracked activities. This means that from an observer's perspective,\n * ongoing activities will accumulate and collectively contribute to the notion\n * of total progress until all currently tracked ongoing activities have\n * completed.\n */\nclass ProgressTracker extends EventTarget {\n constructor() {\n super(...arguments);\n this.ongoingActivities = new Set();\n this.totalProgress = 0;\n }\n /**\n * The total number of activities currently being tracked.\n */\n get ongoingActivityCount() {\n return this.ongoingActivities.size;\n }\n /**\n * Registers a new activity to be tracked by the progress tracker. The method\n * returns a special callback that should be invoked whenever new progress is\n * ready to be reported. The progress should be reported as a value between 0\n * and 1, where 0 would represent the beginning of the action and 1 would\n * represent its completion.\n *\n * There is no built-in notion of a time-out for ongoing activities, so once\n * an ongoing activity is begun, it is up to the consumer of this API to\n * update the progress until that activity is no longer ongoing.\n *\n * Progress is only allowed to move forward for any given activity. If a lower\n * progress is reported than the previously reported progress, it will be\n * ignored.\n */\n beginActivity() {\n const activity = { progress: 0, completed: false };\n this.ongoingActivities.add(activity);\n if (this.ongoingActivityCount === 1) {\n // Announce the first progress event (which should always be 0 / 1\n // total progress):\n this.announceTotalProgress(activity, 0);\n }\n return (progress) => {\n let nextProgress;\n nextProgress = Math.max(clamp(progress, 0, 1), activity.progress);\n if (nextProgress !== activity.progress) {\n this.announceTotalProgress(activity, nextProgress);\n }\n return activity.progress;\n };\n }\n announceTotalProgress(updatedActivity, nextProgress) {\n let progressLeft = 0;\n let completedActivities = 0;\n if (nextProgress == 1.0)\n updatedActivity.completed = true;\n for (const activity of this.ongoingActivities) {\n const { progress } = activity;\n progressLeft += 1.0 - progress;\n if (activity.completed === true) {\n completedActivities++;\n }\n }\n const lastProgress = updatedActivity.progress;\n updatedActivity.progress = nextProgress;\n // Advance the total progress by the fraction of total remaining progress\n // due to this activity.\n this.totalProgress += (nextProgress - lastProgress) *\n (1.0 - this.totalProgress) / progressLeft;\n const totalProgress = completedActivities === this.ongoingActivityCount ?\n 1.0 :\n this.totalProgress;\n this.dispatchEvent(new CustomEvent('progress', { detail: { totalProgress } }));\n if (completedActivities === this.ongoingActivityCount) {\n this.totalProgress = 0.0;\n this.ongoingActivities.clear();\n }\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar _a$7, _b$6, _c$4, _d$2, _e$1, _f$1, _g, _h, _j, _k, _l, _m;\nconst CLEAR_MODEL_TIMEOUT_MS = 1000;\nconst FALLBACK_SIZE_UPDATE_THRESHOLD_MS = 50;\nconst ANNOUNCE_MODEL_VISIBILITY_DEBOUNCE_THRESHOLD = 0;\nconst UNSIZED_MEDIA_WIDTH = 300;\nconst UNSIZED_MEDIA_HEIGHT = 150;\nconst blobCanvas = document.createElement('canvas');\nconst $fallbackResizeHandler = Symbol('fallbackResizeHandler');\nconst $defaultAriaLabel = Symbol('defaultAriaLabel');\nconst $resizeObserver = Symbol('resizeObserver');\nconst $clearModelTimeout = Symbol('clearModelTimeout');\nconst $onContextLost = Symbol('onContextLost');\nconst $loaded = Symbol('loaded');\nconst $status = Symbol('status');\nconst $onFocus$1 = Symbol('onFocus');\nconst $onBlur$1 = Symbol('onBlur');\nconst $updateSize = Symbol('updateSize');\nconst $intersectionObserver = Symbol('intersectionObserver');\nconst $isElementInViewport = Symbol('isElementInViewport');\nconst $announceModelVisibility = Symbol('announceModelVisibility');\nconst $ariaLabel = Symbol('ariaLabel');\nconst $altDefaulted = Symbol('altDefaulted');\nconst $statusElement = Symbol('statusElement');\nconst $updateStatus = Symbol('updateStatus');\nconst $loadedTime = Symbol('loadedTime');\nconst $updateSource = Symbol('updateSource');\nconst $markLoaded = Symbol('markLoaded');\nconst $container = Symbol('container');\nconst $userInputElement = Symbol('input');\nconst $canvas = Symbol('canvas');\nconst $scene = Symbol('scene');\nconst $needsRender = Symbol('needsRender');\nconst $tick = Symbol('tick');\nconst $onModelLoad = Symbol('onModelLoad');\nconst $onResize = Symbol('onResize');\nconst $renderer = Symbol('renderer');\nconst $progressTracker = Symbol('progressTracker');\nconst $getLoaded = Symbol('getLoaded');\nconst $getModelIsVisible = Symbol('getModelIsVisible');\nconst $shouldAttemptPreload = Symbol('shouldAttemptPreload');\nconst $sceneIsReady = Symbol('sceneIsReady');\nconst $hasTransitioned = Symbol('hasTransitioned');\nconst toVector3D = (v) => {\n return {\n x: v.x,\n y: v.y,\n z: v.z,\n toString() {\n return `${this.x}m ${this.y}m ${this.z}m`;\n }\n };\n};\nconst toVector2D = (v) => {\n return {\n u: v.x,\n v: v.y,\n toString() {\n return `${this.u} ${this.v}`;\n }\n };\n};\n/**\n * Definition for a basic element.\n */\nclass ModelViewerElementBase extends a$1 {\n /**\n * Creates a new ModelViewerElement.\n */\n constructor() {\n super();\n this.alt = null;\n this.src = null;\n this.withCredentials = false;\n this[_a$7] = false;\n this[_b$6] = false;\n this[_c$4] = 0;\n this[_d$2] = null;\n this[_e$1] = debounce(() => {\n const boundingRect = this.getBoundingClientRect();\n this[$updateSize](boundingRect);\n }, FALLBACK_SIZE_UPDATE_THRESHOLD_MS);\n this[_f$1] = debounce((oldVisibility) => {\n const newVisibility = this.modelIsVisible;\n if (newVisibility !== oldVisibility) {\n this.dispatchEvent(new CustomEvent('model-visibility', { detail: { visible: newVisibility } }));\n }\n }, ANNOUNCE_MODEL_VISIBILITY_DEBOUNCE_THRESHOLD);\n this[_g] = null;\n this[_h] = null;\n this[_j] = new ProgressTracker();\n this[_k] = () => {\n this[$statusElement].textContent = this[$status];\n };\n this[_l] = () => {\n this[$statusElement].textContent = '';\n };\n this[_m] = (event) => {\n this.dispatchEvent(new CustomEvent('error', { detail: { type: 'webglcontextlost', sourceError: event.sourceEvent } }));\n };\n this.attachShadow({ mode: 'open' });\n const shadowRoot = this.shadowRoot;\n makeTemplate(shadowRoot);\n this[$container] = shadowRoot.querySelector('.container');\n this[$userInputElement] =\n shadowRoot.querySelector('.userInput');\n this[$canvas] = shadowRoot.querySelector('canvas');\n this[$statusElement] =\n shadowRoot.querySelector('#status');\n this[$defaultAriaLabel] =\n this[$userInputElement].getAttribute('aria-label');\n // Because of potential race conditions related to invoking the constructor\n // we only use the bounding rect to set the initial size if the element is\n // already connected to the document:\n let width, height;\n if (this.isConnected) {\n const rect = this.getBoundingClientRect();\n width = rect.width;\n height = rect.height;\n }\n else {\n width = UNSIZED_MEDIA_WIDTH;\n height = UNSIZED_MEDIA_HEIGHT;\n }\n // Create the underlying ModelScene.\n this[$scene] =\n new ModelScene({ canvas: this[$canvas], element: this, width, height });\n this[$scene].addEventListener('model-load', async (event) => {\n this[$markLoaded]();\n this[$onModelLoad]();\n // Give loading async tasks a chance to complete.\n await timePasses();\n this.dispatchEvent(new CustomEvent('load', { detail: { url: event.url } }));\n });\n // Update initial size on microtask timing so that subclasses have a\n // chance to initialize\n Promise.resolve().then(() => {\n this[$updateSize](this.getBoundingClientRect());\n });\n if (HAS_RESIZE_OBSERVER) {\n // Set up a resize observer so we can scale our canvas\n // if our changes\n this[$resizeObserver] =\n new ResizeObserver((entries) => {\n // Don't resize anything if in AR mode; otherwise the canvas\n // scaling to fullscreen on entering AR will clobber the flat/2d\n // dimensions of the element.\n if (this[$renderer].isPresenting) {\n return;\n }\n for (let entry of entries) {\n if (entry.target === this) {\n this[$updateSize](entry.contentRect);\n }\n }\n });\n }\n if (HAS_INTERSECTION_OBSERVER) {\n this[$intersectionObserver] = new IntersectionObserver(entries => {\n for (let entry of entries) {\n if (entry.target === this) {\n const oldVisibility = this.modelIsVisible;\n this[$isElementInViewport] = entry.isIntersecting;\n this[$announceModelVisibility](oldVisibility);\n if (this[$isElementInViewport] && !this[$sceneIsReady]()) {\n this[$updateSource]();\n }\n }\n }\n }, {\n root: null,\n // We used to have margin here, but it was causing animated models below\n // the fold to steal the frame budget. Weirder still, it would also\n // cause input events to be swallowed, sometimes for seconds on the\n // model above the fold, but only when the animated model was completely\n // below. Setting this margin to zero fixed it.\n rootMargin: '0px',\n threshold: 0,\n });\n }\n else {\n // If there is no intersection obsever, then all models should be visible\n // at all times:\n this[$isElementInViewport] = true;\n }\n }\n static get is() {\n return 'model-viewer';\n }\n /** @export */\n static set modelCacheSize(value) {\n CachingGLTFLoader[$evictionPolicy].evictionThreshold = value;\n }\n /** @export */\n static get modelCacheSize() {\n return CachingGLTFLoader[$evictionPolicy].evictionThreshold;\n }\n /** @export */\n static set minimumRenderScale(value) {\n if (value > 1) {\n console.warn(' minimumRenderScale has been clamped to a maximum value of 1.');\n }\n if (value <= 0) {\n console.warn(' minimumRenderScale has been clamped to a minimum value of 0.25.');\n }\n Renderer.singleton.minScale = value;\n }\n /** @export */\n static get minimumRenderScale() {\n return Renderer.singleton.minScale;\n }\n /** @export */\n get loaded() {\n return this[$getLoaded]();\n }\n get [(_a$7 = $isElementInViewport, _b$6 = $loaded, _c$4 = $loadedTime, _d$2 = $clearModelTimeout, _e$1 = $fallbackResizeHandler, _f$1 = $announceModelVisibility, _g = $resizeObserver, _h = $intersectionObserver, _j = $progressTracker, $renderer)]() {\n return Renderer.singleton;\n }\n /** @export */\n get modelIsVisible() {\n return this[$getModelIsVisible]();\n }\n connectedCallback() {\n super.connectedCallback && super.connectedCallback();\n if (HAS_RESIZE_OBSERVER) {\n this[$resizeObserver].observe(this);\n }\n else {\n self.addEventListener('resize', this[$fallbackResizeHandler]);\n }\n if (HAS_INTERSECTION_OBSERVER) {\n this[$intersectionObserver].observe(this);\n }\n this.addEventListener('focus', this[$onFocus$1]);\n this.addEventListener('blur', this[$onBlur$1]);\n const renderer = this[$renderer];\n renderer.addEventListener('contextlost', this[$onContextLost]);\n renderer.registerScene(this[$scene]);\n if (this[$clearModelTimeout] != null) {\n self.clearTimeout(this[$clearModelTimeout]);\n this[$clearModelTimeout] = null;\n // Force an update in case the model has been evicted from our GLTF cache\n // @see https://lit-element.polymer-project.org/guide/lifecycle#requestupdate\n this.requestUpdate('src', null);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback && super.disconnectedCallback();\n if (HAS_RESIZE_OBSERVER) {\n this[$resizeObserver].unobserve(this);\n }\n else {\n self.removeEventListener('resize', this[$fallbackResizeHandler]);\n }\n if (HAS_INTERSECTION_OBSERVER) {\n this[$intersectionObserver].unobserve(this);\n }\n this.removeEventListener('focus', this[$onFocus$1]);\n this.removeEventListener('blur', this[$onBlur$1]);\n const renderer = this[$renderer];\n renderer.removeEventListener('contextlost', this[$onContextLost]);\n renderer.unregisterScene(this[$scene]);\n this[$clearModelTimeout] = self.setTimeout(() => {\n this[$scene].reset();\n }, CLEAR_MODEL_TIMEOUT_MS);\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n // NOTE(cdata): If a property changes from values A -> B -> A in the space\n // of a microtask, LitElement/UpdatingElement will notify of a change even\n // though the value has effectively not changed, so we need to check to make\n // sure that the value has actually changed before changing the loaded flag.\n if (changedProperties.has('src')) {\n if (this.src == null) {\n this[$loaded] = false;\n this[$loadedTime] = 0;\n this[$scene].reset();\n }\n else if (this.src !== this[$scene].url) {\n this[$loaded] = false;\n this[$loadedTime] = 0;\n this[$updateSource]();\n }\n }\n if (changedProperties.has('alt')) {\n this[$userInputElement].setAttribute('aria-label', this[$ariaLabel]);\n }\n if (changedProperties.has('withCredentials')) {\n CachingGLTFLoader.withCredentials = this.withCredentials;\n }\n }\n /** @export */\n toDataURL(type, encoderOptions) {\n return this[$renderer]\n .displayCanvas(this[$scene])\n .toDataURL(type, encoderOptions);\n }\n /** @export */\n async toBlob(options) {\n const mimeType = options ? options.mimeType : undefined;\n const qualityArgument = options ? options.qualityArgument : undefined;\n const useIdealAspect = options ? options.idealAspect : undefined;\n const { width, height, idealAspect, aspect } = this[$scene];\n const { dpr, scaleFactor } = this[$renderer];\n let outputWidth = width * scaleFactor * dpr;\n let outputHeight = height * scaleFactor * dpr;\n let offsetX = 0;\n let offsetY = 0;\n if (useIdealAspect === true) {\n if (idealAspect > aspect) {\n const oldHeight = outputHeight;\n outputHeight = Math.round(outputWidth / idealAspect);\n offsetY = (oldHeight - outputHeight) / 2;\n }\n else {\n const oldWidth = outputWidth;\n outputWidth = Math.round(outputHeight * idealAspect);\n offsetX = (oldWidth - outputWidth) / 2;\n }\n }\n blobCanvas.width = outputWidth;\n blobCanvas.height = outputHeight;\n try {\n return new Promise(async (resolve, reject) => {\n blobCanvas.getContext('2d').drawImage(this[$renderer].displayCanvas(this[$scene]), offsetX, offsetY, outputWidth, outputHeight, 0, 0, outputWidth, outputHeight);\n if (blobCanvas.msToBlob) {\n // NOTE: msToBlob only returns image/png\n // so ensure mimeType is not specified (defaults to image/png)\n // or is image/png, otherwise fallback to using toDataURL on IE.\n if (!mimeType || mimeType === 'image/png') {\n return resolve(blobCanvas.msToBlob());\n }\n }\n if (!blobCanvas.toBlob) {\n return resolve(await dataUrlToBlob(blobCanvas.toDataURL(mimeType, qualityArgument)));\n }\n blobCanvas.toBlob((blob) => {\n if (!blob) {\n return reject(new Error('Unable to retrieve canvas blob'));\n }\n resolve(blob);\n }, mimeType, qualityArgument);\n });\n }\n finally {\n this[$updateSize]({ width, height });\n }\n }\n registerRenderer(renderer) {\n this[$scene].externalRenderer = renderer;\n }\n unregisterRenderer() {\n this[$scene].externalRenderer = null;\n }\n get [$ariaLabel]() {\n return this[$altDefaulted];\n }\n get [$altDefaulted]() {\n return (this.alt == null || this.alt === 'null') ? this[$defaultAriaLabel] :\n this.alt;\n }\n // NOTE(cdata): Although this may seem extremely redundant, it is required in\n // order to support overloading when TypeScript is compiled to ES5\n // @see https://github.com/Polymer/lit-element/pull/745\n // @see https://github.com/microsoft/TypeScript/issues/338\n [$getLoaded]() {\n return this[$loaded];\n }\n // @see [$getLoaded]\n [$getModelIsVisible]() {\n return this.loaded && this[$isElementInViewport];\n }\n [$hasTransitioned]() {\n return this.modelIsVisible;\n }\n [$shouldAttemptPreload]() {\n return !!this.src && this[$isElementInViewport];\n }\n [$sceneIsReady]() {\n return this[$loaded];\n }\n /**\n * Called on initialization and when the resize observer fires.\n */\n [$updateSize]({ width, height }) {\n this[$container].style.width = `${width}px`;\n this[$container].style.height = `${height}px`;\n this[$onResize]({ width: parseFloat(width), height: parseFloat(height) });\n }\n [$tick](_time, _delta) {\n }\n [$markLoaded]() {\n if (this[$loaded]) {\n return;\n }\n this[$loaded] = true;\n this[$loadedTime] = performance.now();\n }\n [$needsRender]() {\n this[$scene].queueRender();\n }\n [$onModelLoad]() {\n }\n [$updateStatus](status) {\n this[$status] = status;\n const rootNode = this.getRootNode();\n // Only change the aria-label if is currently focused:\n if (rootNode != null && rootNode.activeElement === this &&\n this[$statusElement].textContent != status) {\n this[$statusElement].textContent = status;\n }\n }\n [(_k = $onFocus$1, _l = $onBlur$1, $onResize)](e) {\n this[$scene].setSize(e.width, e.height);\n }\n /**\n * Parses the element for an appropriate source URL and\n * sets the views to use the new model based off of the `preload`\n * attribute.\n */\n async [(_m = $onContextLost, $updateSource)]() {\n if (this.loaded || !this[$shouldAttemptPreload]()) {\n return;\n }\n const updateSourceProgress = this[$progressTracker].beginActivity();\n const source = this.src;\n try {\n await this[$scene].setSource(source, (progress) => updateSourceProgress(progress * 0.95));\n const detail = { url: source };\n this.dispatchEvent(new CustomEvent('preload', { detail }));\n }\n catch (error) {\n this.dispatchEvent(new CustomEvent('error', { detail: error }));\n }\n finally {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n updateSourceProgress(1.0);\n });\n });\n }\n }\n}\n__decorate$6([\n e$3({ type: String })\n], ModelViewerElementBase.prototype, \"alt\", void 0);\n__decorate$6([\n e$3({ type: String })\n], ModelViewerElementBase.prototype, \"src\", void 0);\n__decorate$6([\n e$3({ type: Boolean, attribute: 'with-credentials' })\n], ModelViewerElementBase.prototype, \"withCredentials\", void 0);\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nconst MILLISECONDS_PER_SECOND = 1000.0;\nconst $changeAnimation = Symbol('changeAnimation');\nconst $paused = Symbol('paused');\nconst DEFAULT_PLAY_OPTIONS = {\n repetitions: Infinity,\n pingpong: false\n};\nconst AnimationMixin = (ModelViewerElement) => {\n var _a;\n class AnimationModelViewerElement extends ModelViewerElement {\n constructor(...args) {\n super(args);\n this.autoplay = false;\n this.animationName = undefined;\n this.animationCrossfadeDuration = 300;\n this[_a] = true;\n this[$scene].subscribeMixerEvent('loop', (e) => {\n const count = e.action._loopCount;\n this.dispatchEvent(new CustomEvent('loop', { detail: { count } }));\n });\n this[$scene].subscribeMixerEvent('finished', () => {\n this[$paused] = true;\n this.dispatchEvent(new CustomEvent('finished'));\n });\n }\n /**\n * Returns an array\n */\n get availableAnimations() {\n if (this.loaded) {\n return this[$scene].animationNames;\n }\n return [];\n }\n get duration() {\n return this[$scene].duration;\n }\n get paused() {\n return this[$paused];\n }\n get currentTime() {\n return this[$scene].animationTime;\n }\n set currentTime(value) {\n this[$scene].animationTime = value;\n this[$needsRender]();\n }\n get timeScale() {\n return this[$scene].animationTimeScale;\n }\n set timeScale(value) {\n this[$scene].animationTimeScale = value;\n }\n pause() {\n if (this[$paused]) {\n return;\n }\n this[$paused] = true;\n this.dispatchEvent(new CustomEvent('pause'));\n }\n play(options) {\n if (this.availableAnimations.length > 0) {\n this[$paused] = false;\n this[$changeAnimation](options);\n this.dispatchEvent(new CustomEvent('play'));\n }\n }\n [(_a = $paused, $onModelLoad)]() {\n super[$onModelLoad]();\n this[$paused] = true;\n if (this.autoplay) {\n this.play();\n }\n }\n [$tick](_time, delta) {\n super[$tick](_time, delta);\n if (this[$paused] ||\n (!this[$hasTransitioned]() && !this[$renderer].isPresenting)) {\n return;\n }\n this[$scene].updateAnimation(delta / MILLISECONDS_PER_SECOND);\n this[$needsRender]();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('autoplay') && this.autoplay) {\n this.play();\n }\n if (changedProperties.has('animationName')) {\n this[$changeAnimation]();\n }\n }\n async [$updateSource]() {\n // If we are loading a new model, we need to stop the animation of\n // the current one (if any is playing). Otherwise, we might lose\n // the reference to the scene root and running actions start to\n // throw exceptions and/or behave in unexpected ways:\n this[$scene].stopAnimation();\n return super[$updateSource]();\n }\n [$changeAnimation](options = DEFAULT_PLAY_OPTIONS) {\n var _b;\n const repetitions = (_b = options.repetitions) !== null && _b !== void 0 ? _b : Infinity;\n const mode = options.pingpong ?\n LoopPingPong :\n (repetitions === 1 ? LoopOnce : LoopRepeat);\n this[$scene].playAnimation(this.animationName, this.animationCrossfadeDuration / MILLISECONDS_PER_SECOND, mode, repetitions);\n // If we are currently paused, we need to force a render so that\n // the scene updates to the first frame of the new animation\n if (this[$paused]) {\n this[$scene].updateAnimation(0);\n this[$needsRender]();\n }\n }\n }\n __decorate$5([\n e$3({ type: Boolean })\n ], AnimationModelViewerElement.prototype, \"autoplay\", void 0);\n __decorate$5([\n e$3({ type: String, attribute: 'animation-name' })\n ], AnimationModelViewerElement.prototype, \"animationName\", void 0);\n __decorate$5([\n e$3({ type: Number, attribute: 'animation-crossfade-duration' })\n ], AnimationModelViewerElement.prototype, \"animationCrossfadeDuration\", void 0);\n return AnimationModelViewerElement;\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $hotspotMap = Symbol('hotspotMap');\nconst $mutationCallback = Symbol('mutationCallback');\nconst $observer = Symbol('observer');\nconst $addHotspot = Symbol('addHotspot');\nconst $removeHotspot = Symbol('removeHotspot');\nconst worldToModel = new Matrix4();\nconst worldToModelNormal = new Matrix3();\n/**\n * AnnotationMixin implements a declarative API to add hotspots and annotations.\n * Child elements of the element that have a slot name that\n * begins with \"hotspot\" and data-position and data-normal attributes in\n * the format of the camera-target attribute will be added to the scene and\n * track the specified model coordinates.\n */\nconst AnnotationMixin = (ModelViewerElement) => {\n var _a, _b, _c;\n class AnnotationModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this[_a] = new Map();\n this[_b] = (mutations) => {\n mutations.forEach((mutation) => {\n // NOTE: Be wary that in ShadyDOM cases, the MutationRecord\n // only has addedNodes and removedNodes (and no other details).\n if (!(mutation instanceof MutationRecord) ||\n mutation.type === 'childList') {\n mutation.addedNodes.forEach((node) => {\n this[$addHotspot](node);\n });\n mutation.removedNodes.forEach((node) => {\n this[$removeHotspot](node);\n });\n this[$needsRender]();\n }\n });\n };\n this[_c] = new MutationObserver(this[$mutationCallback]);\n }\n connectedCallback() {\n super.connectedCallback();\n for (let i = 0; i < this.children.length; ++i) {\n this[$addHotspot](this.children[i]);\n }\n const { ShadyDOM } = self;\n if (ShadyDOM == null) {\n this[$observer].observe(this, { childList: true });\n }\n else {\n this[$observer] =\n ShadyDOM.observeChildren(this, this[$mutationCallback]);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n const { ShadyDOM } = self;\n if (ShadyDOM == null) {\n this[$observer].disconnect();\n }\n else {\n ShadyDOM.unobserveChildren(this[$observer]);\n }\n }\n [(_a = $hotspotMap, _b = $mutationCallback, _c = $observer, $tick)](time, delta) {\n super[$tick](time, delta);\n const scene = this[$scene];\n const { annotationRenderer } = scene;\n const camera = scene.getCamera();\n if (scene.shouldRender()) {\n scene.updateHotspots(camera.position);\n annotationRenderer.domElement.style.display = '';\n annotationRenderer.render(scene, camera);\n }\n }\n /**\n * Since the data-position and data-normal attributes are not observed, use\n * this method to move a hotspot. Keep in mind that all hotspots with the\n * same slot name use a single location and the first definition takes\n * precedence, until updated with this method.\n */\n updateHotspot(config) {\n const hotspot = this[$hotspotMap].get(config.name);\n if (hotspot == null) {\n return;\n }\n hotspot.updatePosition(config.position);\n hotspot.updateNormal(config.normal);\n this[$needsRender]();\n }\n /**\n * This method returns the model position, normal and texture coordinate\n * of the point on the mesh corresponding to the input pixel coordinates\n * given relative to the model-viewer element. The position and normal\n * are returned as strings in the format suitable for putting in a\n * hotspot's data-position and data-normal attributes. If the mesh is\n * not hit, the result is null.\n */\n positionAndNormalFromPoint(pixelX, pixelY) {\n const scene = this[$scene];\n const ndcPosition = scene.getNDC(pixelX, pixelY);\n const hit = scene.positionAndNormalFromPoint(ndcPosition);\n if (hit == null) {\n return null;\n }\n worldToModel.copy(scene.target.matrixWorld).invert();\n const position = toVector3D(hit.position.applyMatrix4(worldToModel));\n worldToModelNormal.getNormalMatrix(worldToModel);\n const normal = toVector3D(hit.normal.applyNormalMatrix(worldToModelNormal));\n let uv = null;\n if (hit.uv != null) {\n uv = toVector2D(hit.uv);\n }\n return { position: position, normal: normal, uv: uv };\n }\n [$addHotspot](node) {\n if (!(node instanceof HTMLElement &&\n node.slot.indexOf('hotspot') === 0)) {\n return;\n }\n let hotspot = this[$hotspotMap].get(node.slot);\n if (hotspot != null) {\n hotspot.increment();\n }\n else {\n hotspot = new Hotspot({\n name: node.slot,\n position: node.dataset.position,\n normal: node.dataset.normal,\n });\n this[$hotspotMap].set(node.slot, hotspot);\n this[$scene].addHotspot(hotspot);\n }\n this[$scene].queueRender();\n }\n [$removeHotspot](node) {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n const hotspot = this[$hotspotMap].get(node.slot);\n if (!hotspot) {\n return;\n }\n if (hotspot.decrement()) {\n this[$scene].removeHotspot(hotspot);\n this[$hotspotMap].delete(node.slot);\n }\n this[$scene].queueRender();\n }\n }\n return AnnotationModelViewerElement;\n};\n\n/*!\nfflate - fast JavaScript compression/decompression\n\nLicensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE\nversion 0.6.9\n*/\nvar durl = function (c) { return URL.createObjectURL(new Blob([c], { type: 'text/javascript' })); };\ntry {\n URL.revokeObjectURL(durl(''));\n}\ncatch (e) {\n // We're in Deno or a very old browser\n durl = function (c) { return 'data:application/javascript;charset=UTF-8,' + encodeURI(c); };\n}\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([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, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([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, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a$6 = freb(fleb, 2), fl = _a$6[0], revfl = _a$6[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b$5 = freb(fdeb, 0), revfd = _b$5[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0);\n// get end of byte\nvar shft = function (p) { return ((p / 8) | 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nfunction deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nfunction strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n throw 'extra field too long';\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c == null && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != null) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nfunction zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n throw 'filename too long';\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n\nclass USDZExporter {\n\n\tasync parse( scene ) {\n\n\t\tconst files = {};\n\t\tconst modelFileName = 'model.usda';\n\n\t\t// model file should be first in USDZ archive so we init it here\n\t\tfiles[ modelFileName ] = null;\n\n\t\tlet output = buildHeader();\n\n\t\tconst materials = {};\n\t\tconst textures = {};\n\n\t\tscene.traverseVisible( ( object ) => {\n\n\t\t\tif ( object.isMesh ) {\n\n\t\t\t\tif ( object.material.isMeshStandardMaterial ) {\n\n\t\t\t\t\tconst geometry = object.geometry;\n\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\tconst geometryFileName = 'geometries/Geometry_' + geometry.id + '.usd';\n\n\t\t\t\t\tif ( ! ( geometryFileName in files ) ) {\n\n\t\t\t\t\t\tconst meshObject = buildMeshObject( geometry );\n\t\t\t\t\t\tfiles[ geometryFileName ] = buildUSDFileAsString( meshObject );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! ( material.uuid in materials ) ) {\n\n\t\t\t\t\t\tmaterials[ material.uuid ] = material;\n\n\t\t\t\t\t}\n\n\t\t\t\t\toutput += buildXform( object, geometry, material );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.USDZExporter: Unsupported material type (USDZ only supports MeshStandardMaterial)', object );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\toutput += buildMaterials( materials, textures );\n\n\t\tfiles[ modelFileName ] = strToU8( output );\n\t\toutput = null;\n\n\t\tfor ( const id in textures ) {\n\n\t\t\tconst texture = textures[ id ];\n\t\t\tconst color = id.split( '_' )[ 1 ];\n\t\t\tconst isRGBA = texture.format === 1023;\n\n\t\t\tconst canvas = imageToCanvas( texture.image, color );\n\t\t\tconst blob = await new Promise( resolve => canvas.toBlob( resolve, isRGBA ? 'image/png' : 'image/jpeg', 1 ) );\n\n\t\t\tfiles[ `textures/Texture_${ id }.${ isRGBA ? 'png' : 'jpg' }` ] = new Uint8Array( await blob.arrayBuffer() );\n\n\t\t}\n\n\t\t// 64 byte alignment\n\t\t// https://github.com/101arrowz/fflate/issues/39#issuecomment-777263109\n\n\t\tlet offset = 0;\n\n\t\tfor ( const filename in files ) {\n\n\t\t\tconst file = files[ filename ];\n\t\t\tconst headerSize = 34 + filename.length;\n\n\t\t\toffset += headerSize;\n\n\t\t\tconst offsetMod64 = offset & 63;\n\n\t\t\tif ( offsetMod64 !== 4 ) {\n\n\t\t\t\tconst padLength = 64 - offsetMod64;\n\t\t\t\tconst padding = new Uint8Array( padLength );\n\n\t\t\t\tfiles[ filename ] = [ file, { extra: { 12345: padding } } ];\n\n\t\t\t}\n\n\t\t\toffset = file.length;\n\n\t\t}\n\n\t\treturn zipSync( files, { level: 0 } );\n\n\t}\n\n}\n\nfunction imageToCanvas( image, color ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\tconst scale = 1024 / Math.max( image.width, image.height );\n\n\t\tconst canvas = document.createElement( 'canvas' );\n\t\tcanvas.width = image.width * Math.min( 1, scale );\n\t\tcanvas.height = image.height * Math.min( 1, scale );\n\n\t\tconst context = canvas.getContext( '2d' );\n\t\tcontext.drawImage( image, 0, 0, canvas.width, canvas.height );\n\n\t\tif ( color !== undefined ) {\n\n\t\t\tconst hex = parseInt( color, 16 );\n\n\t\t\tconst r = ( hex >> 16 & 255 ) / 255;\n\t\t\tconst g = ( hex >> 8 & 255 ) / 255;\n\t\t\tconst b = ( hex & 255 ) / 255;\n\n\t\t\tconst imagedata = context.getImageData( 0, 0, canvas.width, canvas.height );\n\t\t\tconst data = imagedata.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i += 4 ) {\n\n\t\t\t\tdata[ i + 0 ] = data[ i + 0 ] * r;\n\t\t\t\tdata[ i + 1 ] = data[ i + 1 ] * g;\n\t\t\t\tdata[ i + 2 ] = data[ i + 2 ] * b;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imagedata, 0, 0 );\n\n\t\t}\n\n\t\treturn canvas;\n\n\t}\n\n}\n\n//\n\nconst PRECISION = 7;\n\nfunction buildHeader() {\n\n\treturn `#usda 1.0\n(\n customLayerData = {\n string creator = \"Three.js USDZExporter\"\n }\n metersPerUnit = 1\n upAxis = \"Y\"\n)\n\n`;\n\n}\n\nfunction buildUSDFileAsString( dataToInsert ) {\n\n\tlet output = buildHeader();\n\toutput += dataToInsert;\n\treturn strToU8( output );\n\n}\n\n// Xform\n\nfunction buildXform( object, geometry, material ) {\n\n\tconst name = 'Object_' + object.id;\n\tconst transform = buildMatrix( object.matrixWorld );\n\n\tif ( object.matrixWorld.determinant() < 0 ) {\n\n\t\tconsole.warn( 'THREE.USDZExporter: USDZ does not support negative scales', object );\n\n\t}\n\n\treturn `def Xform \"${ name }\" (\n prepend references = @./geometries/Geometry_${ geometry.id }.usd@\n)\n{\n matrix4d xformOp:transform = ${ transform }\n uniform token[] xformOpOrder = [\"xformOp:transform\"]\n\n rel material:binding = \n}\n\n`;\n\n}\n\nfunction buildMatrix( matrix ) {\n\n\tconst array = matrix.elements;\n\n\treturn `( ${ buildMatrixRow( array, 0 ) }, ${ buildMatrixRow( array, 4 ) }, ${ buildMatrixRow( array, 8 ) }, ${ buildMatrixRow( array, 12 ) } )`;\n\n}\n\nfunction buildMatrixRow( array, offset ) {\n\n\treturn `(${ array[ offset + 0 ] }, ${ array[ offset + 1 ] }, ${ array[ offset + 2 ] }, ${ array[ offset + 3 ] })`;\n\n}\n\n// Mesh\n\nfunction buildMeshObject( geometry ) {\n\n\tconst mesh = buildMesh( geometry );\n\treturn `\ndef \"Geometry\"\n{\n ${mesh}\n}\n`;\n\n}\n\nfunction buildMesh( geometry ) {\n\n\tconst name = 'Geometry';\n\tconst attributes = geometry.attributes;\n\tconst count = attributes.position.count;\n\n\treturn `\n def Mesh \"${ name }\"\n {\n int[] faceVertexCounts = [${ buildMeshVertexCount( geometry ) }]\n int[] faceVertexIndices = [${ buildMeshVertexIndices( geometry ) }]\n normal3f[] normals = [${ buildVector3Array( attributes.normal, count )}] (\n interpolation = \"vertex\"\n )\n point3f[] points = [${ buildVector3Array( attributes.position, count )}]\n float2[] primvars:st = [${ buildVector2Array( attributes.uv, count )}] (\n interpolation = \"vertex\"\n )\n uniform token subdivisionScheme = \"none\"\n }\n`;\n\n}\n\nfunction buildMeshVertexCount( geometry ) {\n\n\tconst count = geometry.index !== null ? geometry.index.count : geometry.attributes.position.count;\n\n\treturn Array( count / 3 ).fill( 3 ).join( ', ' );\n\n}\n\nfunction buildMeshVertexIndices( geometry ) {\n\n\tconst index = geometry.index;\n\tconst array = [];\n\n\tif ( index !== null ) {\n\n\t\tfor ( let i = 0; i < index.count; i ++ ) {\n\n\t\t\tarray.push( index.getX( i ) );\n\n\t\t}\n\n\t} else {\n\n\t\tconst length = geometry.attributes.position.count;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tarray.push( i );\n\n\t\t}\n\n\t}\n\n\treturn array.join( ', ' );\n\n}\n\nfunction buildVector3Array( attribute, count ) {\n\n\tif ( attribute === undefined ) {\n\n\t\tconsole.warn( 'USDZExporter: Normals missing.' );\n\t\treturn Array( count ).fill( '(0, 0, 0)' ).join( ', ' );\n\n\t}\n\n\tconst array = [];\n\n\tfor ( let i = 0; i < attribute.count; i ++ ) {\n\n\t\tconst x = attribute.getX( i );\n\t\tconst y = attribute.getY( i );\n\t\tconst z = attribute.getZ( i );\n\n\t\tarray.push( `(${ x.toPrecision( PRECISION ) }, ${ y.toPrecision( PRECISION ) }, ${ z.toPrecision( PRECISION ) })` );\n\n\t}\n\n\treturn array.join( ', ' );\n\n}\n\nfunction buildVector2Array( attribute, count ) {\n\n\tif ( attribute === undefined ) {\n\n\t\tconsole.warn( 'USDZExporter: UVs missing.' );\n\t\treturn Array( count ).fill( '(0, 0)' ).join( ', ' );\n\n\t}\n\n\tconst array = [];\n\n\tfor ( let i = 0; i < attribute.count; i ++ ) {\n\n\t\tconst x = attribute.getX( i );\n\t\tconst y = attribute.getY( i );\n\n\t\tarray.push( `(${ x.toPrecision( PRECISION ) }, ${ 1 - y.toPrecision( PRECISION ) })` );\n\n\t}\n\n\treturn array.join( ', ' );\n\n}\n\n// Materials\n\nfunction buildMaterials( materials, textures ) {\n\n\tconst array = [];\n\n\tfor ( const uuid in materials ) {\n\n\t\tconst material = materials[ uuid ];\n\n\t\tarray.push( buildMaterial( material, textures ) );\n\n\t}\n\n\treturn `def \"Materials\"\n{\n${ array.join( '' ) }\n}\n\n`;\n\n}\n\nfunction buildMaterial( material, textures ) {\n\n\t// https://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html\n\n\tconst pad = ' ';\n\tconst inputs = [];\n\tconst samplers = [];\n\n\tfunction buildTexture( texture, mapType, color ) {\n\n\t\tconst id = texture.id + ( color ? '_' + color.getHexString() : '' );\n\t\tconst isRGBA = texture.format === 1023;\n\n\t\ttextures[ id ] = texture;\n\n\t\treturn `\n def Shader \"Transform2d_${ mapType }\" (\n sdrMetadata = {\n string role = \"math\"\n }\n )\n {\n uniform token info:id = \"UsdTransform2d\"\n float2 inputs:in.connect = \n float2 inputs:scale = ${ buildVector2( texture.repeat ) }\n float2 inputs:translation = ${ buildVector2( texture.offset ) }\n float2 outputs:result\n }\n\n def Shader \"Texture_${ texture.id }_${ mapType }\"\n {\n uniform token info:id = \"UsdUVTexture\"\n asset inputs:file = @textures/Texture_${ id }.${ isRGBA ? 'png' : 'jpg' }@\n float2 inputs:st.connect = \n token inputs:wrapS = \"repeat\"\n token inputs:wrapT = \"repeat\"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n ${ material.transparent || material.alphaTest > 0.0 ? 'float outputs:a' : '' }\n }`;\n\n\t}\n\n\tif ( material.map !== null ) {\n\n\t\tinputs.push( `${ pad }color3f inputs:diffuseColor.connect = ` );\n\n\t\tif ( material.transparent ) {\n\n\t\t\tinputs.push( `${ pad }float inputs:opacity.connect = ` );\n\n\t\t} else if ( material.alphaTest > 0.0 ) {\n\n\t\t\tinputs.push( `${ pad }float inputs:opacity.connect = ` );\n\t\t\tinputs.push( `${ pad }float inputs:opacityThreshold = ${material.alphaTest}` );\n\n\t\t}\n\n\t\tsamplers.push( buildTexture( material.map, 'diffuse', material.color ) );\n\n\t} else {\n\n\t\tinputs.push( `${ pad }color3f inputs:diffuseColor = ${ buildColor( material.color ) }` );\n\n\t}\n\n\tif ( material.emissiveMap !== null ) {\n\n\t\tinputs.push( `${ pad }color3f inputs:emissiveColor.connect = ` );\n\n\t\tsamplers.push( buildTexture( material.emissiveMap, 'emissive' ) );\n\n\t} else if ( material.emissive.getHex() > 0 ) {\n\n\t\tinputs.push( `${ pad }color3f inputs:emissiveColor = ${ buildColor( material.emissive ) }` );\n\n\t}\n\n\tif ( material.normalMap !== null ) {\n\n\t\tinputs.push( `${ pad }normal3f inputs:normal.connect = ` );\n\n\t\tsamplers.push( buildTexture( material.normalMap, 'normal' ) );\n\n\t}\n\n\tif ( material.aoMap !== null ) {\n\n\t\tinputs.push( `${ pad }float inputs:occlusion.connect = ` );\n\n\t\tsamplers.push( buildTexture( material.aoMap, 'occlusion' ) );\n\n\t}\n\n\tif ( material.roughnessMap !== null && material.roughness === 1 ) {\n\n\t\tinputs.push( `${ pad }float inputs:roughness.connect = ` );\n\n\t\tsamplers.push( buildTexture( material.roughnessMap, 'roughness' ) );\n\n\t} else {\n\n\t\tinputs.push( `${ pad }float inputs:roughness = ${ material.roughness }` );\n\n\t}\n\n\tif ( material.metalnessMap !== null && material.metalness === 1 ) {\n\n\t\tinputs.push( `${ pad }float inputs:metallic.connect = ` );\n\n\t\tsamplers.push( buildTexture( material.metalnessMap, 'metallic' ) );\n\n\t} else {\n\n\t\tinputs.push( `${ pad }float inputs:metallic = ${ material.metalness }` );\n\n\t}\n\n\tif ( material.alphaMap !== null ) {\n\n\t\tinputs.push( `${pad}float inputs:opacity.connect = ` );\n\t\tinputs.push( `${pad}float inputs:opacityThreshold = 0.0001` );\n\n\t\tsamplers.push( buildTexture( material.alphaMap, 'opacity' ) );\n\n\t} else {\n\n\t\tinputs.push( `${pad}float inputs:opacity = ${material.opacity}` );\n\n\t}\n\n\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\tinputs.push( `${ pad }float inputs:clearcoat = ${ material.clearcoat }` );\n\t\tinputs.push( `${ pad }float inputs:clearcoatRoughness = ${ material.clearcoatRoughness }` );\n\t\tinputs.push( `${ pad }float inputs:ior = ${ material.ior }` );\n\n\t}\n\n\treturn `\n def Material \"Material_${ material.id }\"\n {\n def Shader \"PreviewSurface\"\n {\n uniform token info:id = \"UsdPreviewSurface\"\n${ inputs.join( '\\n' ) }\n int inputs:useSpecularWorkflow = 0\n token outputs:surface\n }\n\n token outputs:surface.connect = \n token inputs:frame:stPrimvarName = \"st\"\n\n def Shader \"uvReader_st\"\n {\n uniform token info:id = \"UsdPrimvarReader_float2\"\n token inputs:varname.connect = \n float2 inputs:fallback = (0.0, 0.0)\n float2 outputs:result\n }\n\n${ samplers.join( '\\n' ) }\n\n }\n`;\n\n}\n\nfunction buildColor( color ) {\n\n\treturn `(${ color.r }, ${ color.g }, ${ color.b })`;\n\n}\n\nfunction buildVector2( vector ) {\n\n\treturn `(${ vector.x }, ${ vector.y })`;\n\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * For our purposes, an enumeration is a fixed set of CSS-expression-compatible\n * names. When serialized, a selected subset of the members may be specified as\n * whitespace-separated strings. An enumeration deserializer is a function that\n * parses a serialized subset of an enumeration and returns any members that are\n * found as a Set.\n *\n * The following example will produce a deserializer for the days of the\n * week:\n *\n * const deserializeDaysOfTheWeek = enumerationDeserializer([\n * 'Monday',\n * 'Tuesday',\n * 'Wednesday',\n * 'Thursday',\n * 'Friday',\n * 'Saturday',\n * 'Sunday'\n * ]);\n */\nconst enumerationDeserializer = (allowedNames) => (valueString) => {\n try {\n const expressions = parseExpressions(valueString);\n const names = (expressions.length ? expressions[0].terms : [])\n .filter((valueNode) => valueNode && valueNode.type === 'ident')\n .map(valueNode => valueNode.value)\n .filter(name => allowedNames.indexOf(name) > -1);\n // NOTE(cdata): IE11 does not support constructing a Set directly from\n // an iterable, so we need to manually add all the items:\n const result = new Set();\n for (const name of names) {\n result.add(name);\n }\n return result;\n }\n catch (_error) {\n }\n return new Set();\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nlet isWebXRBlocked = false;\nlet isSceneViewerBlocked = false;\nconst noArViewerSigil = '#model-viewer-no-ar-fallback';\nconst deserializeARModes = enumerationDeserializer(['quick-look', 'scene-viewer', 'webxr', 'none']);\nconst DEFAULT_AR_MODES = 'webxr scene-viewer';\nconst ARMode = {\n QUICK_LOOK: 'quick-look',\n SCENE_VIEWER: 'scene-viewer',\n WEBXR: 'webxr',\n NONE: 'none'\n};\nconst $arButtonContainer = Symbol('arButtonContainer');\nconst $enterARWithWebXR = Symbol('enterARWithWebXR');\nconst $openSceneViewer = Symbol('openSceneViewer');\nconst $openIOSARQuickLook = Symbol('openIOSARQuickLook');\nconst $canActivateAR = Symbol('canActivateAR');\nconst $arMode = Symbol('arMode');\nconst $arModes = Symbol('arModes');\nconst $arAnchor = Symbol('arAnchor');\nconst $preload = Symbol('preload');\nconst $onARButtonContainerClick = Symbol('onARButtonContainerClick');\nconst $onARStatus = Symbol('onARStatus');\nconst $onARTracking = Symbol('onARTracking');\nconst $onARTap = Symbol('onARTap');\nconst $selectARMode = Symbol('selectARMode');\nconst $triggerLoad = Symbol('triggerLoad');\nconst ARMixin = (ModelViewerElement) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n class ARModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this.ar = false;\n this.arScale = 'auto';\n this.arPlacement = 'floor';\n this.arModes = DEFAULT_AR_MODES;\n this.iosSrc = null;\n this.xrEnvironment = false;\n this[_a] = false;\n // TODO: Add this to the shadow root as part of this mixin's\n // implementation:\n this[_b] = this.shadowRoot.querySelector('.ar-button');\n this[_c] = document.createElement('a');\n this[_d] = new Set();\n this[_e] = ARMode.NONE;\n this[_f] = false;\n this[_g] = (event) => {\n event.preventDefault();\n this.activateAR();\n };\n this[_h] = ({ status }) => {\n if (status === ARStatus.NOT_PRESENTING ||\n this[$renderer].arRenderer.presentedScene === this[$scene]) {\n this.setAttribute('ar-status', status);\n this.dispatchEvent(new CustomEvent('ar-status', { detail: { status } }));\n if (status === ARStatus.NOT_PRESENTING) {\n this.removeAttribute('ar-tracking');\n }\n else if (status === ARStatus.SESSION_STARTED) {\n this.setAttribute('ar-tracking', ARTracking.TRACKING);\n }\n }\n };\n this[_j] = ({ status }) => {\n this.setAttribute('ar-tracking', status);\n this.dispatchEvent(new CustomEvent('ar-tracking', { detail: { status } }));\n };\n this[_k] = (event) => {\n if (event.data == '_apple_ar_quicklook_button_tapped') {\n this.dispatchEvent(new CustomEvent('quick-look-button-tapped'));\n }\n };\n }\n get canActivateAR() {\n return this[$arMode] !== ARMode.NONE;\n }\n connectedCallback() {\n super.connectedCallback();\n this[$renderer].arRenderer.addEventListener('status', this[$onARStatus]);\n this.setAttribute('ar-status', ARStatus.NOT_PRESENTING);\n this[$renderer].arRenderer.addEventListener('tracking', this[$onARTracking]);\n this[$arAnchor].addEventListener('message', this[$onARTap]);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this[$renderer].arRenderer.removeEventListener('status', this[$onARStatus]);\n this[$renderer].arRenderer.removeEventListener('tracking', this[$onARTracking]);\n this[$arAnchor].removeEventListener('message', this[$onARTap]);\n }\n async update(changedProperties) {\n super.update(changedProperties);\n if (changedProperties.has('arScale')) {\n this[$scene].canScale = this.arScale !== 'fixed';\n }\n if (changedProperties.has('arPlacement')) {\n this[$scene].updateShadow();\n this[$needsRender]();\n }\n if (!changedProperties.has('ar') && !changedProperties.has('arModes') &&\n !changedProperties.has('src') && !changedProperties.has('iosSrc')) {\n return;\n }\n if (changedProperties.has('arModes')) {\n this[$arModes] = deserializeARModes(this.arModes);\n }\n this[$selectARMode]();\n }\n /**\n * Activates AR. Note that for any mode that is not WebXR-based, this\n * method most likely has to be called synchronous from a user\n * interaction handler. Otherwise, attempts to activate modes that\n * require user interaction will most likely be ignored.\n */\n async activateAR() {\n switch (this[$arMode]) {\n case ARMode.QUICK_LOOK:\n this[$openIOSARQuickLook]();\n break;\n case ARMode.WEBXR:\n await this[$enterARWithWebXR]();\n break;\n case ARMode.SCENE_VIEWER:\n this[$openSceneViewer]();\n break;\n default:\n console.warn('No AR Mode can be activated. This is probably due to missing \\\nconfiguration or device capabilities');\n break;\n }\n }\n async [(_a = $canActivateAR, _b = $arButtonContainer, _c = $arAnchor, _d = $arModes, _e = $arMode, _f = $preload, _g = $onARButtonContainerClick, _h = $onARStatus, _j = $onARTracking, _k = $onARTap, $selectARMode)]() {\n this[$arMode] = ARMode.NONE;\n if (this.ar) {\n if (this.src != null) {\n for (const value of this[$arModes]) {\n if (value === 'webxr' && IS_WEBXR_AR_CANDIDATE && !isWebXRBlocked &&\n await this[$renderer].arRenderer.supportsPresentation()) {\n this[$arMode] = ARMode.WEBXR;\n break;\n }\n if (value === 'scene-viewer' && IS_SCENEVIEWER_CANDIDATE &&\n !isSceneViewerBlocked) {\n this[$arMode] = ARMode.SCENE_VIEWER;\n break;\n }\n if (value === 'quick-look' && IS_AR_QUICKLOOK_CANDIDATE) {\n this[$arMode] = ARMode.QUICK_LOOK;\n break;\n }\n }\n }\n // The presence of ios-src overrides the absence of quick-look\n // ar-mode.\n if (!this.canActivateAR && this.iosSrc != null &&\n IS_AR_QUICKLOOK_CANDIDATE) {\n this[$arMode] = ARMode.QUICK_LOOK;\n }\n }\n if (this.canActivateAR) {\n this[$arButtonContainer].classList.add('enabled');\n this[$arButtonContainer].addEventListener('click', this[$onARButtonContainerClick]);\n }\n else if (this[$arButtonContainer].classList.contains('enabled')) {\n this[$arButtonContainer].removeEventListener('click', this[$onARButtonContainerClick]);\n this[$arButtonContainer].classList.remove('enabled');\n // If AR went from working to not, notify the element.\n const status = ARStatus.FAILED;\n this.setAttribute('ar-status', status);\n this.dispatchEvent(new CustomEvent('ar-status', { detail: { status } }));\n }\n }\n async [$enterARWithWebXR]() {\n console.log('Attempting to present in AR with WebXR...');\n await this[$triggerLoad]();\n try {\n this[$arButtonContainer].removeEventListener('click', this[$onARButtonContainerClick]);\n const { arRenderer } = this[$renderer];\n arRenderer.placeOnWall = this.arPlacement === 'wall';\n await arRenderer.present(this[$scene], this.xrEnvironment);\n }\n catch (error) {\n console.warn('Error while trying to present in AR with WebXR');\n console.error(error);\n await this[$renderer].arRenderer.stopPresenting();\n isWebXRBlocked = true;\n console.warn('Falling back to next ar-mode');\n await this[$selectARMode]();\n this.activateAR();\n }\n finally {\n this[$selectARMode]();\n }\n }\n async [$triggerLoad]() {\n if (!this.loaded) {\n this[$preload] = true;\n this[$updateSource]();\n await waitForEvent(this, 'load');\n this[$preload] = false;\n }\n }\n [$shouldAttemptPreload]() {\n return super[$shouldAttemptPreload]() || this[$preload];\n }\n /**\n * Takes a URL and a title string, and attempts to launch Scene Viewer on\n * the current device.\n */\n [$openSceneViewer]() {\n const location = self.location.toString();\n const locationUrl = new URL(location);\n const modelUrl = new URL(this.src, location);\n const params = new URLSearchParams(modelUrl.search);\n locationUrl.hash = noArViewerSigil;\n // modelUrl can contain title/link/sound etc.\n params.set('mode', 'ar_preferred');\n if (!params.has('disable_occlusion')) {\n params.set('disable_occlusion', 'true');\n }\n if (this.arScale === 'fixed') {\n params.set('resizable', 'false');\n }\n if (this.arPlacement === 'wall') {\n params.set('enable_vertical_placement', 'true');\n }\n if (params.has('sound')) {\n const soundUrl = new URL(params.get('sound'), location);\n params.set('sound', soundUrl.toString());\n }\n if (params.has('link')) {\n const linkUrl = new URL(params.get('link'), location);\n params.set('link', linkUrl.toString());\n }\n const intent = `intent://arvr.google.com/scene-viewer/1.0?${params.toString() + '&file=' +\n encodeURIComponent(modelUrl\n .toString())}#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=${encodeURIComponent(locationUrl.toString())};end;`;\n const undoHashChange = () => {\n if (self.location.hash === noArViewerSigil) {\n isSceneViewerBlocked = true;\n // The new history will be the current URL with a new hash.\n // Go back one step so that we reset to the expected URL.\n // NOTE(cdata): this should not invoke any browser-level navigation\n // because hash-only changes modify the URL in-place without\n // navigating:\n self.history.back();\n console.warn('Error while trying to present in AR with Scene Viewer');\n console.warn('Falling back to next ar-mode');\n this[$selectARMode]();\n // Would be nice to activateAR() here, but webXR fails due to not\n // seeing a user activation.\n }\n };\n self.addEventListener('hashchange', undoHashChange, { once: true });\n this[$arAnchor].setAttribute('href', intent);\n console.log('Attempting to present in AR with Scene Viewer...');\n this[$arAnchor].click();\n }\n /**\n * Takes a URL to a USDZ file and sets the appropriate fields so that\n * Safari iOS can intent to their AR Quick Look.\n */\n async [$openIOSARQuickLook]() {\n const generateUsdz = !this.iosSrc;\n this[$arButtonContainer].classList.remove('enabled');\n const objectURL = generateUsdz ? await this.prepareUSDZ() : this.iosSrc;\n const modelUrl = new URL(objectURL, self.location.toString());\n if (this.arScale === 'fixed') {\n if (modelUrl.hash) {\n modelUrl.hash += '&';\n }\n modelUrl.hash += 'allowsContentScaling=0';\n }\n const anchor = this[$arAnchor];\n anchor.setAttribute('rel', 'ar');\n const img = document.createElement('img');\n anchor.appendChild(img);\n anchor.setAttribute('href', modelUrl.toString());\n if (generateUsdz) {\n anchor.setAttribute('download', 'model.usdz');\n }\n console.log('Attempting to present in AR with Quick Look...');\n anchor.click();\n anchor.removeChild(img);\n if (generateUsdz) {\n URL.revokeObjectURL(objectURL);\n }\n this[$arButtonContainer].classList.add('enabled');\n }\n async prepareUSDZ() {\n const updateSourceProgress = this[$progressTracker].beginActivity();\n await this[$triggerLoad]();\n const scene = this[$scene];\n const shadow = scene.shadow;\n let visible = false;\n // Remove shadow from export\n if (shadow != null) {\n visible = shadow.visible;\n shadow.visible = false;\n }\n updateSourceProgress(0.2);\n const exporter = new USDZExporter();\n const arraybuffer = await exporter.parse(scene.modelContainer);\n const blob = new Blob([arraybuffer], {\n type: 'model/vnd.usdz+zip',\n });\n const url = URL.createObjectURL(blob);\n updateSourceProgress(1);\n if (shadow != null) {\n shadow.visible = visible;\n }\n return url;\n }\n }\n __decorate$4([\n e$3({ type: Boolean, attribute: 'ar' })\n ], ARModelViewerElement.prototype, \"ar\", void 0);\n __decorate$4([\n e$3({ type: String, attribute: 'ar-scale' })\n ], ARModelViewerElement.prototype, \"arScale\", void 0);\n __decorate$4([\n e$3({ type: String, attribute: 'ar-placement' })\n ], ARModelViewerElement.prototype, \"arPlacement\", void 0);\n __decorate$4([\n e$3({ type: String, attribute: 'ar-modes' })\n ], ARModelViewerElement.prototype, \"arModes\", void 0);\n __decorate$4([\n e$3({ type: String, attribute: 'ios-src' })\n ], ARModelViewerElement.prototype, \"iosSrc\", void 0);\n __decorate$4([\n e$3({ type: Boolean, attribute: 'xr-environment' })\n ], ARModelViewerElement.prototype, \"xrEnvironment\", void 0);\n return ARModelViewerElement;\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$5, _b$4, _c$3;\nconst $evaluate = Symbol('evaluate');\nconst $lastValue = Symbol('lastValue');\n/**\n * An Evaluator is used to derive a computed style from part (or all) of a CSS\n * expression AST. This construct is particularly useful for complex ASTs\n * containing function calls such as calc, var and env. Such styles could be\n * costly to re-evaluate on every frame (and in some cases we may try to do\n * that). The Evaluator construct allows us to mark sub-trees of the AST as\n * constant, so that only the dynamic parts are re-evaluated. It also separates\n * one-time AST preparation work from work that necessarily has to happen upon\n * each evaluation.\n */\nclass Evaluator {\n constructor() {\n this[_a$5] = null;\n }\n /**\n * An Evaluatable is a NumberNode or an Evaluator that evaluates a NumberNode\n * as the result of invoking its evaluate method. This is mainly used to\n * ensure that CSS function nodes are cast to the corresponding Evaluators\n * that will resolve the result of the function, but is also used to ensure\n * that a percentage nested at arbitrary depth in the expression will always\n * be evaluated against the correct basis.\n */\n static evaluatableFor(node, basis = ZERO) {\n if (node instanceof Evaluator) {\n return node;\n }\n if (node.type === 'number') {\n if (node.unit === '%') {\n return new PercentageEvaluator(node, basis);\n }\n return node;\n }\n switch (node.name.value) {\n case 'calc':\n return new CalcEvaluator(node, basis);\n case 'env':\n return new EnvEvaluator(node);\n }\n return ZERO;\n }\n /**\n * If the input is an Evaluator, returns the result of evaluating it.\n * Otherwise, returns the input.\n *\n * This is a helper to aide in resolving a NumberNode without conditionally\n * checking if the Evaluatable is an Evaluator everywhere.\n */\n static evaluate(evaluatable) {\n if (evaluatable instanceof Evaluator) {\n return evaluatable.evaluate();\n }\n return evaluatable;\n }\n /**\n * If the input is an Evaluator, returns the value of its isConstant property.\n * Returns true for all other input values.\n */\n static isConstant(evaluatable) {\n if (evaluatable instanceof Evaluator) {\n return evaluatable.isConstant;\n }\n return true;\n }\n /**\n * This method applies a set of structured intrinsic metadata to an evaluated\n * result from a parsed CSS-like string of expressions. Intrinsics provide\n * sufficient metadata (e.g., basis values, analogs for keywords) such that\n * omitted values in the input string can be backfilled, and keywords can be\n * converted to concrete numbers.\n *\n * The result of applying intrinsics is a tuple of NumberNode values whose\n * units match the units used by the basis of the intrinsics.\n *\n * The following is a high-level description of how intrinsics are applied:\n *\n * 1. Determine the value of 'auto' for the current term\n * 2. If there is no corresponding input value for this term, substitute the\n * 'auto' value.\n * 3. If the term is an IdentNode, treat it as a keyword and perform the\n * appropriate substitution.\n * 4. If the term is still null, fallback to the 'auto' value\n * 5. If the term is a percentage, apply it to the basis and return that\n * value\n * 6. Normalize the unit of the term\n * 7. If the term's unit does not match the basis unit, return the basis\n * value\n * 8. Return the term as is\n */\n static applyIntrinsics(evaluated, intrinsics) {\n const { basis, keywords } = intrinsics;\n const { auto } = keywords;\n return basis.map((basisNode, index) => {\n // Use an auto value if we have it, otherwise the auto value is the basis:\n const autoSubstituteNode = auto[index] == null ? basisNode : auto[index];\n // If the evaluated nodes do not have a node at the current\n // index, fallback to the \"auto\" substitute right away:\n let evaluatedNode = evaluated[index] ? evaluated[index] : autoSubstituteNode;\n // Any ident node is considered a keyword:\n if (evaluatedNode.type === 'ident') {\n const keyword = evaluatedNode.value;\n // Substitute any keywords for concrete values first:\n if (keyword in keywords) {\n evaluatedNode = keywords[keyword][index];\n }\n }\n // If we don't have a NumberNode at this point, fall back to whatever\n // is specified for auto:\n if (evaluatedNode == null || evaluatedNode.type === 'ident') {\n evaluatedNode = autoSubstituteNode;\n }\n // For percentages, we always apply the percentage to the basis value:\n if (evaluatedNode.unit === '%') {\n return numberNode(evaluatedNode.number / 100 * basisNode.number, basisNode.unit);\n }\n // Otherwise, normalize whatever we have:\n evaluatedNode = normalizeUnit(evaluatedNode, basisNode);\n // If the normalized units do not match, return the basis as a fallback:\n if (evaluatedNode.unit !== basisNode.unit) {\n return basisNode;\n }\n // Finally, return the evaluated node with intrinsics applied:\n return evaluatedNode;\n });\n }\n /**\n * If true, the Evaluator will only evaluate its AST one time. If false, the\n * Evaluator will re-evaluate the AST each time that the public evaluate\n * method is invoked.\n */\n get isConstant() {\n return false;\n }\n /**\n * Evaluate the Evaluator and return the result. If the Evaluator is constant,\n * the corresponding AST will only be evaluated once, and the result of\n * evaluating it the first time will be returned on all subsequent\n * evaluations.\n */\n evaluate() {\n if (!this.isConstant || this[$lastValue] == null) {\n this[$lastValue] = this[$evaluate]();\n }\n return this[$lastValue];\n }\n}\n_a$5 = $lastValue;\nconst $percentage = Symbol('percentage');\nconst $basis = Symbol('basis');\n/**\n * A PercentageEvaluator scales a given basis value by a given percentage value.\n * The evaluated result is always considered to be constant.\n */\nclass PercentageEvaluator extends Evaluator {\n constructor(percentage, basis) {\n super();\n this[$percentage] = percentage;\n this[$basis] = basis;\n }\n get isConstant() {\n return true;\n }\n [$evaluate]() {\n return numberNode(this[$percentage].number / 100 * this[$basis].number, this[$basis].unit);\n }\n}\nconst $identNode = Symbol('identNode');\n/**\n * Evaluator for CSS-like env() functions. Currently, only one environment\n * variable is accepted as an argument for such functions: window-scroll-y.\n *\n * The env() Evaluator is explicitly dynamic because it always refers to\n * external state that changes as the user scrolls, so it should always be\n * re-evaluated to ensure we get the most recent value.\n *\n * Some important notes about this feature include:\n *\n * - There is no such thing as a \"window-scroll-y\" CSS environment variable in\n * any stable browser at the time that this comment is being written.\n * - The actual CSS env() function accepts a second argument as a fallback for\n * the case that the specified first argument isn't set; our syntax does not\n * support this second argument.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/env\n */\nclass EnvEvaluator extends Evaluator {\n constructor(envFunction) {\n super();\n this[_b$4] = null;\n const identNode = envFunction.arguments.length ? envFunction.arguments[0].terms[0] : null;\n if (identNode != null && identNode.type === 'ident') {\n this[$identNode] = identNode;\n }\n }\n get isConstant() {\n return false;\n }\n ;\n [(_b$4 = $identNode, $evaluate)]() {\n if (this[$identNode] != null) {\n switch (this[$identNode].value) {\n case 'window-scroll-y':\n const verticalScrollPosition = window.pageYOffset;\n const verticalScrollMax = Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);\n const scrollY = verticalScrollPosition /\n (verticalScrollMax - window.innerHeight) ||\n 0;\n return { type: 'number', number: scrollY, unit: null };\n }\n }\n return ZERO;\n }\n}\nconst IS_MULTIPLICATION_RE = /[\\*\\/]/;\nconst $evaluator = Symbol('evalutor');\n/**\n * Evaluator for CSS-like calc() functions. Our implementation of calc()\n * evaluation currently support nested function calls, an unlimited number of\n * terms, and all four algebraic operators (+, -, * and /).\n *\n * The Evaluator is marked as constant unless the calc expression contains an\n * internal env expression at any depth, in which case it will be marked as\n * dynamic.\n *\n * @see https://www.w3.org/TR/css-values-3/#calc-syntax\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/calc\n */\nclass CalcEvaluator extends Evaluator {\n constructor(calcFunction, basis = ZERO) {\n super();\n this[_c$3] = null;\n if (calcFunction.arguments.length !== 1) {\n return;\n }\n const terms = calcFunction.arguments[0].terms.slice();\n const secondOrderTerms = [];\n while (terms.length) {\n const term = terms.shift();\n if (secondOrderTerms.length > 0) {\n const previousTerm = secondOrderTerms[secondOrderTerms.length - 1];\n if (previousTerm.type === 'operator' &&\n IS_MULTIPLICATION_RE.test(previousTerm.value)) {\n const operator = secondOrderTerms.pop();\n const leftValue = secondOrderTerms.pop();\n if (leftValue == null) {\n return;\n }\n secondOrderTerms.push(new OperatorEvaluator(operator, Evaluator.evaluatableFor(leftValue, basis), Evaluator.evaluatableFor(term, basis)));\n continue;\n }\n }\n secondOrderTerms.push(term.type === 'operator' ? term :\n Evaluator.evaluatableFor(term, basis));\n }\n while (secondOrderTerms.length > 2) {\n const [left, operator, right] = secondOrderTerms.splice(0, 3);\n if (operator.type !== 'operator') {\n return;\n }\n secondOrderTerms.unshift(new OperatorEvaluator(operator, Evaluator.evaluatableFor(left, basis), Evaluator.evaluatableFor(right, basis)));\n }\n // There should only be one combined evaluator at this point:\n if (secondOrderTerms.length === 1) {\n this[$evaluator] = secondOrderTerms[0];\n }\n }\n get isConstant() {\n return this[$evaluator] == null || Evaluator.isConstant(this[$evaluator]);\n }\n [(_c$3 = $evaluator, $evaluate)]() {\n return this[$evaluator] != null ? Evaluator.evaluate(this[$evaluator]) :\n ZERO;\n }\n}\nconst $operator = Symbol('operator');\nconst $left = Symbol('left');\nconst $right = Symbol('right');\n/**\n * An Evaluator for the operators found inside CSS calc() functions.\n * The evaluator accepts an operator and left/right operands. The operands can\n * be any valid expression term typically allowed inside a CSS calc function.\n *\n * As detail of this implementation, the only supported unit types are angles\n * expressed as radians or degrees, and lengths expressed as meters, centimeters\n * or millimeters.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/calc\n */\nclass OperatorEvaluator extends Evaluator {\n constructor(operator, left, right) {\n super();\n this[$operator] = operator;\n this[$left] = left;\n this[$right] = right;\n }\n get isConstant() {\n return Evaluator.isConstant(this[$left]) &&\n Evaluator.isConstant(this[$right]);\n }\n [$evaluate]() {\n const leftNode = normalizeUnit(Evaluator.evaluate(this[$left]));\n const rightNode = normalizeUnit(Evaluator.evaluate(this[$right]));\n const { number: leftValue, unit: leftUnit } = leftNode;\n const { number: rightValue, unit: rightUnit } = rightNode;\n // Disallow operations for mismatched normalized units e.g., m and rad:\n if (rightUnit != null && leftUnit != null && rightUnit != leftUnit) {\n return ZERO;\n }\n // NOTE(cdata): rules for calc type checking are defined here\n // https://drafts.csswg.org/css-values-3/#calc-type-checking\n // This is a simplification and may not hold up once we begin to support\n // additional unit types:\n const unit = leftUnit || rightUnit;\n let value;\n switch (this[$operator].value) {\n case '+':\n value = leftValue + rightValue;\n break;\n case '-':\n value = leftValue - rightValue;\n break;\n case '/':\n value = leftValue / rightValue;\n break;\n case '*':\n value = leftValue * rightValue;\n break;\n default:\n return ZERO;\n }\n return { type: 'number', number: value, unit };\n }\n}\nconst $evaluatables = Symbol('evaluatables');\nconst $intrinsics = Symbol('intrinsics');\n/**\n * A VectorEvaluator evaluates a series of numeric terms that usually represent\n * a data structure such as a multi-dimensional vector or a spherical\n *\n * The form of the evaluator's result is determined by the Intrinsics that are\n * given to it when it is constructed. For example, spherical intrinsics would\n * establish two angle terms and a length term, so the result of evaluating the\n * evaluator that is configured with spherical intrinsics is a three element\n * array where the first two elements represent angles in radians and the third\n * element representing a length in meters.\n */\nclass StyleEvaluator extends Evaluator {\n constructor(expressions, intrinsics) {\n super();\n this[$intrinsics] = intrinsics;\n const firstExpression = expressions[0];\n const terms = firstExpression != null ? firstExpression.terms : [];\n this[$evaluatables] =\n intrinsics.basis.map((basisNode, index) => {\n const term = terms[index];\n if (term == null) {\n return { type: 'ident', value: 'auto' };\n }\n if (term.type === 'ident') {\n return term;\n }\n return Evaluator.evaluatableFor(term, basisNode);\n });\n }\n get isConstant() {\n for (const evaluatable of this[$evaluatables]) {\n if (!Evaluator.isConstant(evaluatable)) {\n return false;\n }\n }\n return true;\n }\n [$evaluate]() {\n const evaluated = this[$evaluatables].map(evaluatable => Evaluator.evaluate(evaluatable));\n return Evaluator.applyIntrinsics(evaluated, this[$intrinsics])\n .map(numberNode => numberNode.number);\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$4, _b$3, _c$2, _d$1;\nconst $instances = Symbol('instances');\nconst $activateListener = Symbol('activateListener');\nconst $deactivateListener = Symbol('deactivateListener');\nconst $notifyInstances = Symbol('notifyInstances');\nconst $notify = Symbol('notify');\nconst $scrollCallback = Symbol('callback');\n/**\n * This internal helper is intended to work as a reference-counting manager of\n * scroll event listeners. Only one scroll listener is ever registered for all\n * instances of the class, and when the last ScrollObserver \"disconnects\", that\n * event listener is removed. This spares us from thrashing\n * the {add,remove}EventListener API (the binding cost of these methods has been\n * known to show up in performance anlyses) as well as potential memory leaks.\n */\nclass ScrollObserver {\n constructor(callback) {\n this[$scrollCallback] = callback;\n }\n static [$notifyInstances]() {\n for (const instance of ScrollObserver[$instances]) {\n instance[$notify]();\n }\n }\n static [(_a$4 = $instances, $activateListener)]() {\n window.addEventListener('scroll', this[$notifyInstances], { passive: true });\n }\n static [$deactivateListener]() {\n window.removeEventListener('scroll', this[$notifyInstances]);\n }\n /**\n * Listen for scroll events. The configured callback (passed to the\n * constructor) will be invoked for subsequent global scroll events.\n */\n observe() {\n if (ScrollObserver[$instances].size === 0) {\n ScrollObserver[$activateListener]();\n }\n ScrollObserver[$instances].add(this);\n }\n /**\n * Stop listening for scroll events.\n */\n disconnect() {\n ScrollObserver[$instances].delete(this);\n if (ScrollObserver[$instances].size === 0) {\n ScrollObserver[$deactivateListener]();\n }\n }\n [$notify]() {\n this[$scrollCallback]();\n }\n ;\n}\nScrollObserver[_a$4] = new Set();\nconst $computeStyleCallback = Symbol('computeStyleCallback');\nconst $astWalker = Symbol('astWalker');\nconst $dependencies = Symbol('dependencies');\nconst $onScroll = Symbol('onScroll');\n/**\n * The StyleEffector is configured with a callback that will be invoked at the\n * optimal time that some array of CSS expression ASTs ought to be evaluated.\n *\n * For example, our CSS-like expression syntax supports usage of the env()\n * function to incorporate the current top-level scroll position into a CSS\n * expression: env(window-scroll-y).\n *\n * This \"environment variable\" will change dynamically as the user scrolls the\n * page. If an AST contains such a usage of env(), we would have to evaluate the\n * AST on every frame in order to be sure that the computed style stays up to\n * date.\n *\n * The StyleEffector spares us from evaluating the expressions on every frame by\n * correlating specific parts of an AST with observers of the external effects\n * that they refer to (if any). So, if the AST contains env(window-scroll-y),\n * the StyleEffector manages the lifetime of a global scroll event listener and\n * notifies the user at the optimal time to evaluate the computed style.\n */\nclass StyleEffector {\n constructor(callback) {\n this[_b$3] = {};\n this[_c$2] = new ASTWalker(['function']);\n this[_d$1] = () => {\n this[$computeStyleCallback]({ relatedState: 'window-scroll' });\n };\n this[$computeStyleCallback] = callback;\n }\n /**\n * Sets the expressions that govern when the StyleEffector callback will be\n * invoked.\n */\n observeEffectsFor(ast) {\n const newDependencies = {};\n const oldDependencies = this[$dependencies];\n this[$astWalker].walk(ast, functionNode => {\n const { name } = functionNode;\n const firstArgument = functionNode.arguments[0];\n const firstTerm = firstArgument.terms[0];\n if (name.value !== 'env' || firstTerm == null ||\n firstTerm.type !== 'ident') {\n return;\n }\n switch (firstTerm.value) {\n case 'window-scroll-y':\n if (newDependencies['window-scroll'] == null) {\n const observer = 'window-scroll' in oldDependencies ?\n oldDependencies['window-scroll'] :\n new ScrollObserver(this[$onScroll]);\n observer.observe();\n delete oldDependencies['window-scroll'];\n newDependencies['window-scroll'] = observer;\n }\n break;\n }\n });\n for (const environmentState in oldDependencies) {\n const observer = oldDependencies[environmentState];\n observer.disconnect();\n }\n this[$dependencies] = newDependencies;\n }\n /**\n * Disposes of the StyleEffector by disconnecting all observers of external\n * effects.\n */\n dispose() {\n for (const environmentState in this[$dependencies]) {\n const observer = this[$dependencies][environmentState];\n observer.disconnect();\n }\n }\n}\n_b$3 = $dependencies, _c$2 = $astWalker, _d$1 = $onScroll;\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The @style decorator is responsible for coordinating the conversion of a\n * CSS-like string property value into numbers that can be applied to\n * lower-level constructs. It also can optionally manage the lifecycle of a\n * StyleEffector which allows automatic updates for styles that use env() or\n * var() functions.\n *\n * The decorator is configured with Intrinsics and the property key for a\n * method that handles updates. The named update handler is invoked with the\n * result of parsing and evaluating the raw property string value. The format of\n * the evaluated result is derived from the basis of the configured Intrinsics,\n * and is always an array of numbers of fixed length.\n *\n * NOTE: This decorator depends on the property updating mechanism defined by\n * UpdatingElement as exported by the lit-element module. That means it *must*\n * be used in conjunction with the @property decorator, or equivalent\n * JavaScript.\n *\n * Supported configurations are:\n *\n * - `intrinsics`: An Intrinsics struct that describes how to interpret a\n * serialized style attribute. For more detail on intrinsics see\n * ./styles/evaluators.ts\n * - `updateHandler`: A string or Symbol that is the key of a method to be\n * invoked with the result of parsing and evaluating a serialized style string.\n * - `observeEffects`: Optional, if set to true then styles that use env() will\n * cause their update handlers to be invoked every time the corresponding\n * environment variable changes (even if the style attribute itself remains\n * static).\n */\nconst style = (config) => {\n const observeEffects = config.observeEffects || false;\n const getIntrinsics = config.intrinsics instanceof Function ?\n config.intrinsics :\n (() => config.intrinsics);\n return (proto, propertyName) => {\n const originalUpdated = proto.updated;\n const originalConnectedCallback = proto.connectedCallback;\n const originalDisconnectedCallback = proto.disconnectedCallback;\n const $styleEffector = Symbol(`${propertyName}StyleEffector`);\n const $styleEvaluator = Symbol(`${propertyName}StyleEvaluator`);\n const $updateEvaluator = Symbol(`${propertyName}UpdateEvaluator`);\n const $evaluateAndSync = Symbol(`${propertyName}EvaluateAndSync`);\n Object.defineProperties(proto, {\n [$styleEffector]: { value: null, writable: true },\n [$styleEvaluator]: { value: null, writable: true },\n [$updateEvaluator]: {\n value: function () {\n const ast = parseExpressions(this[propertyName]);\n this[$styleEvaluator] =\n new StyleEvaluator(ast, getIntrinsics(this));\n if (this[$styleEffector] == null && observeEffects) {\n this[$styleEffector] =\n new StyleEffector(() => this[$evaluateAndSync]());\n }\n if (this[$styleEffector] != null) {\n this[$styleEffector].observeEffectsFor(ast);\n }\n }\n },\n [$evaluateAndSync]: {\n value: function () {\n if (this[$styleEvaluator] == null) {\n return;\n }\n const result = this[$styleEvaluator].evaluate();\n // @see https://github.com/microsoft/TypeScript/pull/30769\n // @see https://github.com/Microsoft/TypeScript/issues/1863\n this[config.updateHandler](result);\n }\n },\n updated: {\n value: function (changedProperties) {\n // Always invoke updates to styles first. This gives a class that\n // uses this decorator the opportunity to override the effect, or\n // respond to it, in its own implementation of `updated`.\n if (changedProperties.has(propertyName)) {\n this[$updateEvaluator]();\n this[$evaluateAndSync]();\n }\n originalUpdated.call(this, changedProperties);\n }\n },\n connectedCallback: {\n value: function () {\n originalConnectedCallback.call(this);\n this.requestUpdate(propertyName, this[propertyName]);\n }\n },\n disconnectedCallback: {\n value: function () {\n originalDisconnectedCallback.call(this);\n if (this[$styleEffector] != null) {\n this[$styleEffector].dispose();\n this[$styleEffector] = null;\n }\n }\n }\n });\n };\n};\n\n/* @license\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst PAN_SENSITIVITY = 0.018;\nconst TAP_DISTANCE = 2;\nconst TAP_MS = 300;\nconst vector2 = new Vector2();\nconst vector3 = new Vector3();\nconst DEFAULT_OPTIONS = Object.freeze({\n minimumRadius: 0,\n maximumRadius: Infinity,\n minimumPolarAngle: Math.PI / 8,\n maximumPolarAngle: Math.PI - Math.PI / 8,\n minimumAzimuthalAngle: -Infinity,\n maximumAzimuthalAngle: Infinity,\n minimumFieldOfView: 10,\n maximumFieldOfView: 45,\n interactionPolicy: 'always-allow',\n touchAction: 'pan-y'\n});\n// Constants\nconst KEYBOARD_ORBIT_INCREMENT = Math.PI / 8;\nconst ZOOM_SENSITIVITY = 0.04;\nconst KeyCode = {\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\nconst ChangeSource = {\n USER_INTERACTION: 'user-interaction',\n NONE: 'none'\n};\n/**\n * SmoothControls is a Three.js helper for adding delightful pointer and\n * keyboard-based input to a staged Three.js scene. Its API is very similar to\n * OrbitControls, but it offers more opinionated (subjectively more delightful)\n * defaults, easy extensibility and subjectively better out-of-the-box keyboard\n * support.\n *\n * One important change compared to OrbitControls is that the `update` method\n * of SmoothControls must be invoked on every frame, otherwise the controls\n * will not have an effect.\n *\n * Another notable difference compared to OrbitControls is that SmoothControls\n * does not currently support panning (but probably will in a future revision).\n *\n * Like OrbitControls, SmoothControls assumes that the orientation of the camera\n * has been set in terms of position, rotation and scale, so it is important to\n * ensure that the camera's matrixWorld is in sync before using SmoothControls.\n */\nclass SmoothControls extends EventDispatcher {\n constructor(camera, element, scene) {\n super();\n this.camera = camera;\n this.element = element;\n this.scene = scene;\n this.sensitivity = 1;\n this.isUserChange = false;\n this._interactionEnabled = false;\n this._disableZoom = false;\n this.isUserPointing = false;\n // Pan state\n this.enablePan = true;\n this.panProjection = new Matrix3();\n this.panPerPixel = 0;\n // Internal orbital position state\n this.spherical = new Spherical();\n this.goalSpherical = new Spherical();\n this.thetaDamper = new Damper();\n this.phiDamper = new Damper();\n this.radiusDamper = new Damper();\n this.logFov = Math.log(DEFAULT_OPTIONS.maximumFieldOfView);\n this.goalLogFov = this.logFov;\n this.fovDamper = new Damper();\n // Pointer state\n this.touchMode = null;\n this.pointers = [];\n this.startTime = 0;\n this.startPointerPosition = { clientX: 0, clientY: 0 };\n this.lastSeparation = 0;\n this.touchDecided = false;\n this.onContext = (event) => {\n if (this.enablePan) {\n event.preventDefault();\n }\n else {\n for (const pointer of this.pointers) {\n // Required because of a common browser bug where the context menu never\n // fires a pointercancel event.\n this.onPointerUp(new PointerEvent('pointercancel', Object.assign(Object.assign({}, this.startPointerPosition), { pointerId: pointer.id })));\n }\n }\n };\n this.touchModeZoom = (dx, dy) => {\n if (!this._disableZoom) {\n const touchDistance = this.twoTouchDistance(this.pointers[0], this.pointers[1]);\n const deltaZoom = ZOOM_SENSITIVITY *\n (this.lastSeparation - touchDistance) * 50 / this.scene.height;\n this.lastSeparation = touchDistance;\n this.userAdjustOrbit(0, 0, deltaZoom);\n }\n if (this.panPerPixel > 0) {\n this.movePan(dx, dy);\n }\n };\n // We implement our own version of the browser's CSS touch-action, enforced by\n // this function, because the iOS implementation of pan-y is bad and doesn't\n // match Android. Specifically, even if a touch gesture begins by panning X,\n // iOS will switch to scrolling as soon as the gesture moves in the Y, rather\n // than staying in the same mode until the end of the gesture.\n this.disableScroll = (event) => {\n event.preventDefault();\n };\n this.touchModeRotate = (dx, dy) => {\n const { touchAction } = this._options;\n if (!this.touchDecided && touchAction !== 'none') {\n this.touchDecided = true;\n const dxMag = Math.abs(dx);\n const dyMag = Math.abs(dy);\n // If motion is mostly vertical, assume scrolling is the intent.\n if (this.isUserChange &&\n ((touchAction === 'pan-y' && dyMag > dxMag) ||\n (touchAction === 'pan-x' && dxMag > dyMag))) {\n this.touchMode = null;\n return;\n }\n else {\n this.element.addEventListener('touchmove', this.disableScroll, { passive: false });\n }\n }\n this.handleSinglePointerMove(dx, dy);\n };\n this.onPointerDown = (event) => {\n if (!this.canInteract || this.pointers.length > 2) {\n return;\n }\n const { element } = this;\n if (this.pointers.length === 0) {\n element.addEventListener('pointermove', this.onPointerMove);\n element.addEventListener('pointerup', this.onPointerUp);\n this.touchMode = null;\n this.touchDecided = false;\n this.startPointerPosition.clientX = event.clientX;\n this.startPointerPosition.clientY = event.clientY;\n this.startTime = performance.now();\n }\n try {\n element.setPointerCapture(event.pointerId);\n }\n catch (_a) {\n }\n this.pointers.push({ clientX: event.clientX, clientY: event.clientY, id: event.pointerId });\n this.isUserPointing = false;\n if (event.pointerType === 'touch') {\n this.isUserChange = !event.altKey; // set by interact() in controls.ts\n this.onTouchChange(event);\n }\n else {\n this.isUserChange = true;\n this.onMouseDown(event);\n }\n };\n this.onPointerMove = (event) => {\n const pointer = this.pointers.find((pointer) => pointer.id === event.pointerId);\n if (pointer == null) {\n return;\n }\n const numTouches = this.pointers.length;\n const dx = (event.clientX - pointer.clientX) / numTouches;\n const dy = (event.clientY - pointer.clientY) / numTouches;\n if (dx === 0 && dy === 0) {\n return;\n }\n pointer.clientX = event.clientX;\n pointer.clientY = event.clientY;\n if (event.pointerType === 'touch') {\n this.isUserChange = !event.altKey; // set by interact() in controls.ts\n if (this.touchMode !== null) {\n this.touchMode(dx, dy);\n }\n }\n else {\n this.isUserChange = true;\n if (this.panPerPixel > 0) {\n this.movePan(dx, dy);\n }\n else {\n this.handleSinglePointerMove(dx, dy);\n }\n }\n };\n this.onPointerUp = (event) => {\n const { element } = this;\n const index = this.pointers.findIndex((pointer) => pointer.id === event.pointerId);\n if (index !== -1) {\n this.pointers.splice(index, 1);\n }\n // altKey indicates an interaction prompt; don't reset radius in this case\n // as it will cause the camera to drift.\n if (this.panPerPixel > 0 && !event.altKey) {\n this.resetRadius();\n }\n if (this.pointers.length === 0) {\n element.removeEventListener('pointermove', this.onPointerMove);\n element.removeEventListener('pointerup', this.onPointerUp);\n element.removeEventListener('touchmove', this.disableScroll);\n if (this.enablePan) {\n this.recenter(event);\n }\n }\n else if (this.touchMode !== null) {\n this.onTouchChange(event);\n }\n this.scene.element[$panElement].style.opacity = 0;\n element.style.cursor = 'grab';\n this.panPerPixel = 0;\n if (this.isUserPointing) {\n this.dispatchEvent({ type: 'pointer-change-end' });\n }\n };\n this.onWheel = (event) => {\n if (!this.canInteract) {\n return;\n }\n this.isUserChange = true;\n const deltaZoom = event.deltaY *\n (event.deltaMode == 1 ? 18 : 1) * ZOOM_SENSITIVITY / 30;\n this.userAdjustOrbit(0, 0, deltaZoom);\n event.preventDefault();\n };\n this.onKeyDown = (event) => {\n // We track if the key is actually one we respond to, so as not to\n // accidentally clober unrelated key inputs when the has\n // focus.\n let relevantKey = true;\n const { isUserChange } = this;\n this.isUserChange = true;\n switch (event.keyCode) {\n case KeyCode.PAGE_UP:\n this.userAdjustOrbit(0, 0, ZOOM_SENSITIVITY);\n break;\n case KeyCode.PAGE_DOWN:\n this.userAdjustOrbit(0, 0, -1 * ZOOM_SENSITIVITY);\n break;\n case KeyCode.UP:\n this.userAdjustOrbit(0, -KEYBOARD_ORBIT_INCREMENT, 0);\n break;\n case KeyCode.DOWN:\n this.userAdjustOrbit(0, KEYBOARD_ORBIT_INCREMENT, 0);\n break;\n case KeyCode.LEFT:\n this.userAdjustOrbit(-KEYBOARD_ORBIT_INCREMENT, 0, 0);\n break;\n case KeyCode.RIGHT:\n this.userAdjustOrbit(KEYBOARD_ORBIT_INCREMENT, 0, 0);\n break;\n default:\n relevantKey = false;\n this.isUserChange = isUserChange;\n break;\n }\n if (relevantKey) {\n event.preventDefault();\n }\n };\n this._options = Object.assign({}, DEFAULT_OPTIONS);\n this.setOrbit(0, Math.PI / 2, 1);\n this.setFieldOfView(100);\n this.jumpToGoal();\n }\n get interactionEnabled() {\n return this._interactionEnabled;\n }\n enableInteraction() {\n if (this._interactionEnabled === false) {\n const { element } = this;\n element.addEventListener('pointerdown', this.onPointerDown);\n element.addEventListener('pointercancel', this.onPointerUp);\n if (!this._disableZoom) {\n element.addEventListener('wheel', this.onWheel);\n }\n element.addEventListener('keydown', this.onKeyDown);\n // This little beauty is to work around a WebKit bug that otherwise makes\n // touch events randomly not cancelable.\n element.addEventListener('touchmove', () => { }, { passive: false });\n element.addEventListener('contextmenu', this.onContext);\n this.element.style.cursor = 'grab';\n this._interactionEnabled = true;\n this.updateTouchActionStyle();\n }\n }\n disableInteraction() {\n if (this._interactionEnabled === true) {\n const { element } = this;\n element.removeEventListener('pointerdown', this.onPointerDown);\n element.removeEventListener('pointermove', this.onPointerMove);\n element.removeEventListener('pointerup', this.onPointerUp);\n element.removeEventListener('pointercancel', this.onPointerUp);\n element.removeEventListener('wheel', this.onWheel);\n element.removeEventListener('keydown', this.onKeyDown);\n element.removeEventListener('contextmenu', this.onContext);\n element.style.cursor = '';\n this.touchMode = null;\n this._interactionEnabled = false;\n this.updateTouchActionStyle();\n }\n }\n /**\n * The options that are currently configured for the controls instance.\n */\n get options() {\n return this._options;\n }\n set disableZoom(disable) {\n if (this._disableZoom != disable) {\n this._disableZoom = disable;\n if (disable === true) {\n this.element.removeEventListener('wheel', this.onWheel);\n }\n else {\n this.element.addEventListener('wheel', this.onWheel);\n }\n this.updateTouchActionStyle();\n }\n }\n /**\n * Copy the spherical values that represent the current camera orbital\n * position relative to the configured target into a provided Spherical\n * instance. If no Spherical is provided, a new Spherical will be allocated\n * to copy the values into. The Spherical that values are copied into is\n * returned.\n */\n getCameraSpherical(target = new Spherical()) {\n return target.copy(this.spherical);\n }\n /**\n * Returns the camera's current vertical field of view in degrees.\n */\n getFieldOfView() {\n return this.camera.fov;\n }\n /**\n * Configure the _options of the controls. Configured _options will be\n * merged with whatever _options have already been configured for this\n * controls instance.\n */\n applyOptions(_options) {\n Object.assign(this._options, _options);\n // Re-evaluates clamping based on potentially new values for min/max\n // polar, azimuth and radius:\n this.setOrbit();\n this.setFieldOfView(Math.exp(this.goalLogFov));\n }\n /**\n * Sets the near and far planes of the camera.\n */\n updateNearFar(nearPlane, farPlane) {\n this.camera.near = Math.max(nearPlane, farPlane / 1000);\n this.camera.far = farPlane;\n this.camera.updateProjectionMatrix();\n }\n /**\n * Sets the aspect ratio of the camera\n */\n updateAspect(aspect) {\n this.camera.aspect = aspect;\n this.camera.updateProjectionMatrix();\n }\n /**\n * Set the absolute orbital goal of the camera. The change will be\n * applied over a number of frames depending on configured acceleration and\n * dampening _options.\n *\n * Returns true if invoking the method will result in the camera changing\n * position and/or rotation, otherwise false.\n */\n setOrbit(goalTheta = this.goalSpherical.theta, goalPhi = this.goalSpherical.phi, goalRadius = this.goalSpherical.radius) {\n const { minimumAzimuthalAngle, maximumAzimuthalAngle, minimumPolarAngle, maximumPolarAngle, minimumRadius, maximumRadius } = this._options;\n const { theta, phi, radius } = this.goalSpherical;\n const nextTheta = clamp(goalTheta, minimumAzimuthalAngle, maximumAzimuthalAngle);\n if (!isFinite(minimumAzimuthalAngle) &&\n !isFinite(maximumAzimuthalAngle)) {\n this.spherical.theta =\n this.wrapAngle(this.spherical.theta - nextTheta) + nextTheta;\n }\n const nextPhi = clamp(goalPhi, minimumPolarAngle, maximumPolarAngle);\n const nextRadius = clamp(goalRadius, minimumRadius, maximumRadius);\n if (nextTheta === theta && nextPhi === phi && nextRadius === radius) {\n return false;\n }\n this.goalSpherical.theta = nextTheta;\n this.goalSpherical.phi = nextPhi;\n this.goalSpherical.radius = nextRadius;\n this.goalSpherical.makeSafe();\n return true;\n }\n /**\n * Subset of setOrbit() above, which only sets the camera's radius.\n */\n setRadius(radius) {\n this.goalSpherical.radius = radius;\n this.setOrbit();\n }\n /**\n * Sets the goal field of view for the camera\n */\n setFieldOfView(fov) {\n const { minimumFieldOfView, maximumFieldOfView } = this._options;\n fov = clamp(fov, minimumFieldOfView, maximumFieldOfView);\n this.goalLogFov = Math.log(fov);\n }\n /**\n * Sets the smoothing decay time.\n */\n setDamperDecayTime(decayMilliseconds) {\n this.thetaDamper.setDecayTime(decayMilliseconds);\n this.phiDamper.setDecayTime(decayMilliseconds);\n this.radiusDamper.setDecayTime(decayMilliseconds);\n this.fovDamper.setDecayTime(decayMilliseconds);\n }\n /**\n * Adjust the orbital position of the camera relative to its current orbital\n * position. Does not let the theta goal get more than pi ahead of the current\n * theta, which ensures interpolation continues in the direction of the delta.\n * The deltaZoom parameter adjusts both the field of view and the orbit radius\n * such that they progress across their allowed ranges in sync.\n */\n adjustOrbit(deltaTheta, deltaPhi, deltaZoom) {\n const { theta, phi, radius } = this.goalSpherical;\n const { minimumRadius, maximumRadius, minimumFieldOfView, maximumFieldOfView } = this._options;\n const dTheta = this.spherical.theta - theta;\n const dThetaLimit = Math.PI - 0.001;\n const goalTheta = theta - clamp(deltaTheta, -dThetaLimit - dTheta, dThetaLimit - dTheta);\n const goalPhi = phi - deltaPhi;\n const deltaRatio = deltaZoom === 0 ?\n 0 :\n ((deltaZoom > 0 ? maximumRadius : minimumRadius) - radius) /\n (Math.log(deltaZoom > 0 ? maximumFieldOfView : minimumFieldOfView) -\n this.goalLogFov);\n const goalRadius = radius +\n deltaZoom *\n (isFinite(deltaRatio) ? deltaRatio :\n (maximumRadius - minimumRadius) * 2);\n this.setOrbit(goalTheta, goalPhi, goalRadius);\n if (deltaZoom !== 0) {\n const goalLogFov = this.goalLogFov + deltaZoom;\n this.setFieldOfView(Math.exp(goalLogFov));\n }\n }\n /**\n * Move the camera instantly instead of accelerating toward the goal\n * parameters.\n */\n jumpToGoal() {\n this.update(0, SETTLING_TIME);\n }\n /**\n * Update controls. In most cases, this will result in the camera\n * interpolating its position and rotation until it lines up with the\n * designated goal orbital position.\n *\n * Time and delta are measured in milliseconds.\n */\n update(_time, delta) {\n if (this.isStationary()) {\n return;\n }\n const { maximumPolarAngle, maximumRadius } = this._options;\n const dTheta = this.spherical.theta - this.goalSpherical.theta;\n if (Math.abs(dTheta) > Math.PI &&\n !isFinite(this._options.minimumAzimuthalAngle) &&\n !isFinite(this._options.maximumAzimuthalAngle)) {\n this.spherical.theta -= Math.sign(dTheta) * 2 * Math.PI;\n }\n this.spherical.theta = this.thetaDamper.update(this.spherical.theta, this.goalSpherical.theta, delta, Math.PI);\n this.spherical.phi = this.phiDamper.update(this.spherical.phi, this.goalSpherical.phi, delta, maximumPolarAngle);\n this.spherical.radius = this.radiusDamper.update(this.spherical.radius, this.goalSpherical.radius, delta, maximumRadius);\n this.logFov = this.fovDamper.update(this.logFov, this.goalLogFov, delta, 1);\n this.moveCamera();\n }\n updateTouchActionStyle() {\n const { style } = this.element;\n if (this._interactionEnabled) {\n const { touchAction } = this._options;\n if (this._disableZoom && touchAction !== 'none') {\n style.touchAction = 'manipulation';\n }\n else {\n style.touchAction = touchAction;\n }\n }\n else {\n style.touchAction = '';\n }\n }\n isStationary() {\n return this.goalSpherical.theta === this.spherical.theta &&\n this.goalSpherical.phi === this.spherical.phi &&\n this.goalSpherical.radius === this.spherical.radius &&\n this.goalLogFov === this.logFov;\n }\n dispatchChange() {\n const source = this.isUserChange ? ChangeSource.USER_INTERACTION : ChangeSource.NONE;\n this.dispatchEvent({ type: 'change', source });\n }\n moveCamera() {\n // Derive the new camera position from the updated spherical:\n this.spherical.makeSafe();\n this.camera.position.setFromSpherical(this.spherical);\n this.camera.setRotationFromEuler(new Euler(this.spherical.phi - Math.PI / 2, this.spherical.theta, 0, 'YXZ'));\n if (this.camera.fov !== Math.exp(this.logFov)) {\n this.camera.fov = Math.exp(this.logFov);\n this.camera.updateProjectionMatrix();\n }\n this.dispatchChange();\n }\n get canInteract() {\n if (this._options.interactionPolicy == 'allow-when-focused') {\n const rootNode = this.element.getRootNode();\n return rootNode.activeElement === this.element;\n }\n return this._options.interactionPolicy === 'always-allow';\n }\n userAdjustOrbit(deltaTheta, deltaPhi, deltaZoom) {\n this.adjustOrbit(deltaTheta * this.sensitivity, deltaPhi * this.sensitivity, deltaZoom);\n // Always make sure that an initial event is triggered in case there is\n // contention between user interaction and imperative changes. This initial\n // event will give external observers that chance to observe that\n // interaction occurred at all:\n this.dispatchChange();\n }\n // Wraps to between -pi and pi\n wrapAngle(radians) {\n const normalized = (radians + Math.PI) / (2 * Math.PI);\n const wrapped = normalized - Math.floor(normalized);\n return wrapped * 2 * Math.PI - Math.PI;\n }\n pixelLengthToSphericalAngle(pixelLength) {\n return 2 * Math.PI * pixelLength / this.element.clientHeight;\n }\n twoTouchDistance(touchOne, touchTwo) {\n const { clientX: xOne, clientY: yOne } = touchOne;\n const { clientX: xTwo, clientY: yTwo } = touchTwo;\n const xDelta = xTwo - xOne;\n const yDelta = yTwo - yOne;\n return Math.sqrt(xDelta * xDelta + yDelta * yDelta);\n }\n handleSinglePointerMove(dx, dy) {\n const deltaTheta = this.pixelLengthToSphericalAngle(dx);\n const deltaPhi = this.pixelLengthToSphericalAngle(dy);\n if (this.isUserPointing === false) {\n this.isUserPointing = true;\n this.dispatchEvent({ type: 'pointer-change-start' });\n }\n this.userAdjustOrbit(deltaTheta, deltaPhi, 0);\n }\n initializePan() {\n const { theta, phi } = this.spherical;\n const psi = theta - this.scene.yaw;\n this.panPerPixel = PAN_SENSITIVITY / this.scene.height;\n this.panProjection.set(-Math.cos(psi), -Math.cos(phi) * Math.sin(psi), 0, 0, Math.sin(phi), 0, Math.sin(psi), -Math.cos(phi) * Math.cos(psi), 0);\n }\n movePan(dx, dy) {\n const { scene } = this;\n const dxy = vector3.set(dx, dy, 0);\n const metersPerPixel = this.spherical.radius * Math.exp(this.logFov) * this.panPerPixel;\n dxy.multiplyScalar(metersPerPixel);\n const target = scene.getTarget();\n target.add(dxy.applyMatrix3(this.panProjection));\n scene.boundingSphere.clampPoint(target, target);\n scene.setTarget(target.x, target.y, target.z);\n this.dispatchChange();\n }\n recenter(pointer) {\n if (performance.now() > this.startTime + TAP_MS ||\n Math.abs(pointer.clientX - this.startPointerPosition.clientX) >\n TAP_DISTANCE ||\n Math.abs(pointer.clientY - this.startPointerPosition.clientY) >\n TAP_DISTANCE) {\n return;\n }\n const { scene } = this;\n const hit = scene.positionAndNormalFromPoint(scene.getNDC(pointer.clientX, pointer.clientY));\n if (hit == null) {\n const { cameraTarget } = scene.element;\n scene.element.cameraTarget = '';\n scene.element.cameraTarget = cameraTarget;\n // Zoom all the way out.\n this.userAdjustOrbit(0, 0, 1);\n }\n else {\n scene.target.worldToLocal(hit.position);\n scene.setTarget(hit.position.x, hit.position.y, hit.position.z);\n }\n }\n resetRadius() {\n const { scene } = this;\n const hit = scene.positionAndNormalFromPoint(vector2.set(0, 0));\n if (hit == null) {\n return;\n }\n scene.target.worldToLocal(hit.position);\n const goalTarget = scene.getTarget();\n const { theta, phi } = this.spherical;\n // Set target to surface hit point, except the target is still settling,\n // so offset the goal accordingly so the transition is smooth even though\n // this will drift the target slightly away from the hit point.\n const psi = theta - scene.yaw;\n const n = vector3.set(Math.sin(phi) * Math.sin(psi), Math.cos(phi), Math.sin(phi) * Math.cos(psi));\n const dr = n.dot(hit.position.sub(goalTarget));\n goalTarget.add(n.multiplyScalar(dr));\n scene.setTarget(goalTarget.x, goalTarget.y, goalTarget.z);\n // Change the camera radius to match the change in target so that the\n // camera itself does not move, unless it hits a radius bound.\n this.setOrbit(undefined, undefined, this.goalSpherical.radius - dr);\n }\n onTouchChange(event) {\n if (this.pointers.length === 1) {\n this.touchMode = this.touchModeRotate;\n }\n else {\n if (this._disableZoom) {\n this.touchMode = null;\n this.element.removeEventListener('touchmove', this.disableScroll);\n return;\n }\n this.touchMode = (this.touchDecided && this.touchMode === null) ?\n null :\n this.touchModeZoom;\n this.touchDecided = true;\n this.element.addEventListener('touchmove', this.disableScroll, { passive: false });\n this.lastSeparation =\n this.twoTouchDistance(this.pointers[0], this.pointers[1]);\n if (this.enablePan && this.touchMode != null) {\n this.initializePan();\n if (!event.altKey) { // user interaction, not prompt\n this.scene.element[$panElement].style.opacity = 1;\n }\n }\n }\n }\n onMouseDown(event) {\n this.panPerPixel = 0;\n if (this.enablePan &&\n (event.button === 2 || event.ctrlKey || event.metaKey ||\n event.shiftKey)) {\n this.initializePan();\n this.scene.element[$panElement].style.opacity = 1;\n }\n this.element.style.cursor = 'grabbing';\n }\n}\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Adapted from https://gist.github.com/gre/1650294\nconst easeInOutQuad = (t) => t < .5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n/**\n * Creates a TimingFunction that uses a given ease to interpolate between\n * two configured number values.\n */\nconst interpolate = (start, end, ease = easeInOutQuad) => (time) => start + (end - start) * ease(time);\n/**\n * Creates a TimingFunction that interpolates through a weighted list\n * of other TimingFunctions (\"tracks\"). Tracks are interpolated in order, and\n * allocated a percentage of the total time based on their relative weight.\n */\nconst sequence = (tracks, weights) => {\n const cumulativeSum = ((sum) => (value) => sum += value);\n const times = weights.map(cumulativeSum(0));\n return (time) => {\n time = clamp(time, 0, 1);\n time *= times[times.length - 1];\n const i = times.findIndex((val) => val >= time);\n const start = i < 1 ? 0 : times[i - 1];\n const end = times[i];\n return tracks[i]((time - start) / (end - start));\n };\n};\n/**\n * Creates a \"timeline\" TimingFunction out of an initial value and a series of\n * Keyframes. The timeline function accepts value from 0-1 and returns the\n * current value based on keyframe interpolation across the total number of\n * frames. Frames are only used to indicate the relative length of each keyframe\n * transition, so interpolated values will be computed for fractional frames.\n */\nconst timeline = (path) => {\n const tracks = [];\n const weights = [];\n let lastValue = path.initialValue;\n for (let i = 0; i < path.keyframes.length; ++i) {\n const keyframe = path.keyframes[i];\n const { value, frames } = keyframe;\n const ease = keyframe.ease || easeInOutQuad;\n const track = interpolate(lastValue, value, ease);\n tracks.push(track);\n weights.push(frames);\n lastValue = value;\n }\n return sequence(tracks, weights);\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// NOTE(cdata): The following \"animation\" timing functions are deliberately\n// being used in favor of CSS animations. In Safari 12.1 and 13, CSS animations\n// would cause the interaction prompt to glitch unexpectedly\n// @see https://github.com/google/model-viewer/issues/839\nconst PROMPT_ANIMATION_TIME = 5000;\n// For timing purposes, a \"frame\" is a timing agnostic relative unit of time\n// and a \"value\" is a target value for the Frame.\nconst wiggle = timeline({\n initialValue: 0,\n keyframes: [\n { frames: 5, value: -1 },\n { frames: 1, value: -1 },\n { frames: 8, value: 1 },\n { frames: 1, value: 1 },\n { frames: 5, value: 0 },\n { frames: 18, value: 0 }\n ]\n});\nconst fade = timeline({\n initialValue: 0,\n keyframes: [\n { frames: 1, value: 1 },\n { frames: 5, value: 1 },\n { frames: 1, value: 0 },\n { frames: 6, value: 0 }\n ]\n});\nconst DEFAULT_FOV_DEG = 30;\nconst OLD_DEFAULT_FOV_DEG = 45;\nconst DEFAULT_MIN_FOV_DEG = 12;\nconst OLD_DEFAULT_MIN_FOV_DEG = 25;\nconst DEFAULT_CAMERA_ORBIT = '0deg 75deg 105%';\nconst DEFAULT_CAMERA_TARGET = 'auto auto auto';\nconst DEFAULT_FIELD_OF_VIEW = 'auto';\nconst MINIMUM_RADIUS_RATIO = 1.1;\nconst AZIMUTHAL_QUADRANT_LABELS = ['front', 'right', 'back', 'left'];\nconst POLAR_TRIENT_LABELS = ['upper-', '', 'lower-'];\nconst DEFAULT_INTERACTION_PROMPT_THRESHOLD = 3000;\nconst INTERACTION_PROMPT = '. Use mouse, touch or arrow keys to move.';\nconst InteractionPromptStrategy = {\n AUTO: 'auto',\n WHEN_FOCUSED: 'when-focused',\n NONE: 'none'\n};\nconst InteractionPromptStyle = {\n BASIC: 'basic',\n WIGGLE: 'wiggle'\n};\nconst InteractionPolicy = {\n ALWAYS_ALLOW: 'always-allow',\n WHEN_FOCUSED: 'allow-when-focused'\n};\nconst TouchAction = {\n PAN_Y: 'pan-y',\n PAN_X: 'pan-x',\n NONE: 'none'\n};\nconst fieldOfViewIntrinsics = (element) => {\n const fov = element.enablePan ? DEFAULT_FOV_DEG : OLD_DEFAULT_FOV_DEG;\n return {\n basis: [degreesToRadians(numberNode(fov, 'deg'))],\n keywords: { auto: [null] }\n };\n};\nconst minFieldOfViewIntrinsics = (element) => {\n const fov = element.enablePan ? DEFAULT_MIN_FOV_DEG : OLD_DEFAULT_MIN_FOV_DEG;\n return {\n basis: [degreesToRadians(numberNode(fov, 'deg'))],\n keywords: { auto: [null] }\n };\n};\nconst cameraOrbitIntrinsics = (() => {\n const defaultTerms = parseExpressions(DEFAULT_CAMERA_ORBIT)[0]\n .terms;\n const theta = normalizeUnit(defaultTerms[0]);\n const phi = normalizeUnit(defaultTerms[1]);\n return (element) => {\n const radius = element[$scene].idealCameraDistance();\n return {\n basis: [theta, phi, numberNode(radius, 'm')],\n keywords: { auto: [null, null, numberNode(105, '%')] }\n };\n };\n})();\nconst minCameraOrbitIntrinsics = (element) => {\n const radius = MINIMUM_RADIUS_RATIO *\n element[$scene].boundingSphere.radius * (element.enablePan ? 2 : 1);\n return {\n basis: [\n numberNode(-Infinity, 'rad'),\n numberNode(Math.PI / 8, 'rad'),\n numberNode(radius, 'm')\n ],\n keywords: { auto: [null, null, null] }\n };\n};\nconst maxCameraOrbitIntrinsics = (element) => {\n const orbitIntrinsics = cameraOrbitIntrinsics(element);\n const evaluator = new StyleEvaluator([], orbitIntrinsics);\n const defaultRadius = evaluator.evaluate()[2];\n return {\n basis: [\n numberNode(Infinity, 'rad'),\n numberNode(Math.PI - Math.PI / 8, 'rad'),\n numberNode(defaultRadius, 'm')\n ],\n keywords: { auto: [null, null, null] }\n };\n};\nconst cameraTargetIntrinsics = (element) => {\n const center = element[$scene].boundingBox.getCenter(new Vector3());\n return {\n basis: [\n numberNode(center.x, 'm'),\n numberNode(center.y, 'm'),\n numberNode(center.z, 'm')\n ],\n keywords: { auto: [null, null, null] }\n };\n};\nconst HALF_PI = Math.PI / 2.0;\nconst THIRD_PI = Math.PI / 3.0;\nconst QUARTER_PI = HALF_PI / 2.0;\nconst TAU = 2.0 * Math.PI;\nconst $controls = Symbol('controls');\nconst $panElement = Symbol('panElement');\nconst $promptElement = Symbol('promptElement');\nconst $promptAnimatedContainer = Symbol('promptAnimatedContainer');\nconst $fingerAnimatedContainers = Symbol('fingerAnimatedContainers');\nconst $deferInteractionPrompt = Symbol('deferInteractionPrompt');\nconst $updateAria = Symbol('updateAria');\nconst $updateCameraForRadius = Symbol('updateCameraForRadius');\nconst $onBlur = Symbol('onBlur');\nconst $onFocus = Symbol('onFocus');\nconst $onChange = Symbol('onChange');\nconst $onPointerChange = Symbol('onPointerChange');\nconst $waitingToPromptUser = Symbol('waitingToPromptUser');\nconst $userHasInteracted = Symbol('userHasInteracted');\nconst $promptElementVisibleTime = Symbol('promptElementVisibleTime');\nconst $lastPromptOffset = Symbol('lastPromptOffset');\nconst $focusedTime = Symbol('focusedTime');\nconst $lastSpherical = Symbol('lastSpherical');\nconst $jumpCamera = Symbol('jumpCamera');\nconst $initialized = Symbol('initialized');\nconst $maintainThetaPhi = Symbol('maintainThetaPhi');\nconst $syncCameraOrbit = Symbol('syncCameraOrbit');\nconst $syncFieldOfView = Symbol('syncFieldOfView');\nconst $syncCameraTarget = Symbol('syncCameraTarget');\nconst $syncMinCameraOrbit = Symbol('syncMinCameraOrbit');\nconst $syncMaxCameraOrbit = Symbol('syncMaxCameraOrbit');\nconst $syncMinFieldOfView = Symbol('syncMinFieldOfView');\nconst $syncMaxFieldOfView = Symbol('syncMaxFieldOfView');\nconst ControlsMixin = (ModelViewerElement) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n class ControlsModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this.cameraControls = false;\n this.cameraOrbit = DEFAULT_CAMERA_ORBIT;\n this.cameraTarget = DEFAULT_CAMERA_TARGET;\n this.fieldOfView = DEFAULT_FIELD_OF_VIEW;\n this.minCameraOrbit = 'auto';\n this.maxCameraOrbit = 'auto';\n this.minFieldOfView = 'auto';\n this.maxFieldOfView = 'auto';\n this.interactionPromptThreshold = DEFAULT_INTERACTION_PROMPT_THRESHOLD;\n this.interactionPromptStyle = InteractionPromptStyle.WIGGLE;\n this.interactionPrompt = InteractionPromptStrategy.AUTO;\n this.interactionPolicy = InteractionPolicy.ALWAYS_ALLOW;\n this.orbitSensitivity = 1;\n this.touchAction = TouchAction.PAN_Y;\n this.disableZoom = false;\n this.enablePan = false;\n this.interpolationDecay = DECAY_MILLISECONDS;\n this.bounds = 'legacy';\n this[_a] = this.shadowRoot.querySelector('.interaction-prompt');\n this[_b] = this.shadowRoot.querySelector('#prompt');\n this[_c] = [\n this.shadowRoot.querySelector('#finger0'),\n this.shadowRoot.querySelector('#finger1')\n ];\n this[_d] = this.shadowRoot.querySelector('.pan-target');\n this[_e] = Infinity;\n this[_f] = 0;\n this[_g] = Infinity;\n this[_h] = false;\n this[_j] = false;\n this[_k] = new SmoothControls(this[$scene].camera, this[$userInputElement], this[$scene]);\n this[_l] = new Spherical();\n this[_m] = false;\n this[_o] = false;\n this[_p] = false;\n this[_q] = () => {\n if (!isFinite(this[$focusedTime])) {\n this[$focusedTime] = performance.now();\n }\n // NOTE(cdata): On every re-focus, if the user has\n // already interacted, they no longer need to hear the prompt.\n // Otherwise, they will hear it again after the idle prompt threshold\n // has been crossed.\n if (this.interactionPrompt === InteractionPromptStrategy.WHEN_FOCUSED &&\n !this[$userHasInteracted]) {\n this[$waitingToPromptUser] = true;\n }\n };\n this[_r] = () => {\n if (this.interactionPrompt !== InteractionPromptStrategy.WHEN_FOCUSED) {\n return;\n }\n this[$waitingToPromptUser] = false;\n this[$promptElement].classList.remove('visible');\n this[$promptElementVisibleTime] = Infinity;\n this[$focusedTime] = Infinity;\n };\n this[_s] = ({ source }) => {\n this[$updateAria]();\n this[$needsRender]();\n if (source === ChangeSource.USER_INTERACTION) {\n this[$userHasInteracted] = true;\n this[$deferInteractionPrompt]();\n }\n this.dispatchEvent(new CustomEvent('camera-change', { detail: { source } }));\n };\n this[_t] = (event) => {\n if (event.type === 'pointer-change-start') {\n this[$container].classList.add('pointer-tumbling');\n }\n else {\n this[$container].classList.remove('pointer-tumbling');\n }\n };\n }\n getCameraOrbit() {\n const { theta, phi, radius } = this[$lastSpherical];\n return {\n theta,\n phi,\n radius,\n toString() {\n return `${this.theta}rad ${this.phi}rad ${this.radius}m`;\n }\n };\n }\n getCameraTarget() {\n return toVector3D(this[$renderer].isPresenting ? this[$renderer].arRenderer.target :\n this[$scene].getTarget());\n }\n getFieldOfView() {\n return this[$controls].getFieldOfView();\n }\n // Provided so user code does not have to parse these from attributes.\n getMinimumFieldOfView() {\n return this[$controls].options.minimumFieldOfView;\n }\n getMaximumFieldOfView() {\n return this[$controls].options.maximumFieldOfView;\n }\n getIdealAspect() {\n return this[$scene].idealAspect;\n }\n jumpCameraToGoal() {\n this[$jumpCamera] = true;\n this.requestUpdate($jumpCamera, false);\n }\n resetInteractionPrompt() {\n this[$lastPromptOffset] = 0;\n this[$promptElementVisibleTime] = Infinity;\n this[$userHasInteracted] = false;\n this[$waitingToPromptUser] =\n this.interactionPrompt === InteractionPromptStrategy.AUTO &&\n this.cameraControls;\n }\n zoom(keyPresses) {\n const event = new WheelEvent('wheel', { deltaY: -30 * keyPresses });\n this[$userInputElement].dispatchEvent(event);\n }\n connectedCallback() {\n super.connectedCallback();\n this[$controls].addEventListener('change', this[$onChange]);\n this[$controls].addEventListener('pointer-change-start', this[$onPointerChange]);\n this[$controls].addEventListener('pointer-change-end', this[$onPointerChange]);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this[$controls].removeEventListener('change', this[$onChange]);\n this[$controls].removeEventListener('pointer-change-start', this[$onPointerChange]);\n this[$controls].removeEventListener('pointer-change-end', this[$onPointerChange]);\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n const controls = this[$controls];\n const scene = this[$scene];\n const input = this[$userInputElement];\n if (changedProperties.has('cameraControls')) {\n if (this.cameraControls) {\n controls.enableInteraction();\n if (this.interactionPrompt === InteractionPromptStrategy.AUTO) {\n this[$waitingToPromptUser] = true;\n }\n input.addEventListener('focus', this[$onFocus]);\n input.addEventListener('blur', this[$onBlur]);\n }\n else {\n input.removeEventListener('focus', this[$onFocus]);\n input.removeEventListener('blur', this[$onBlur]);\n controls.disableInteraction();\n this[$deferInteractionPrompt]();\n }\n this[$userInputElement].setAttribute('aria-label', this[$ariaLabel]);\n }\n if (changedProperties.has('disableZoom')) {\n controls.disableZoom = this.disableZoom;\n }\n if (changedProperties.has('enablePan')) {\n controls.enablePan = this.enablePan;\n }\n if (changedProperties.has('bounds')) {\n scene.tightBounds = this.bounds === 'tight';\n }\n if (changedProperties.has('interactionPrompt') ||\n changedProperties.has('cameraControls') ||\n changedProperties.has('src')) {\n if (this.interactionPrompt === InteractionPromptStrategy.AUTO &&\n this.cameraControls && !this[$userHasInteracted]) {\n this[$waitingToPromptUser] = true;\n }\n else {\n this[$deferInteractionPrompt]();\n }\n }\n if (changedProperties.has('interactionPolicy')) {\n const interactionPolicy = this.interactionPolicy;\n controls.applyOptions({ interactionPolicy });\n }\n if (changedProperties.has('touchAction')) {\n const touchAction = this.touchAction;\n controls.applyOptions({ touchAction });\n controls.updateTouchActionStyle();\n }\n if (changedProperties.has('orbitSensitivity')) {\n controls.sensitivity = this.orbitSensitivity;\n }\n if (changedProperties.has('interpolationDecay')) {\n controls.setDamperDecayTime(this.interpolationDecay);\n scene.setTargetDamperDecayTime(this.interpolationDecay);\n }\n if (this[$jumpCamera] === true) {\n Promise.resolve().then(() => {\n controls.jumpToGoal();\n scene.jumpToGoal();\n this[$jumpCamera] = false;\n });\n }\n }\n async updateFraming() {\n const scene = this[$scene];\n const oldFramedFoV = scene.adjustedFoV(scene.framedFoVDeg);\n await scene.updateFraming();\n const newFramedFoV = scene.adjustedFoV(scene.framedFoVDeg);\n const zoom = this[$controls].getFieldOfView() / oldFramedFoV;\n this[$controls].setFieldOfView(newFramedFoV * zoom);\n this[$maintainThetaPhi] = true;\n this.requestUpdate('maxFieldOfView');\n this.requestUpdate('fieldOfView');\n this.requestUpdate('minCameraOrbit');\n this.requestUpdate('maxCameraOrbit');\n this.requestUpdate('cameraOrbit');\n await this.updateComplete;\n }\n interact(duration, finger0, finger1) {\n const inputElement = this[$userInputElement];\n const fingerElements = this[$fingerAnimatedContainers];\n if (fingerElements[0].style.opacity === '1') {\n console.warn('interact() failed because an existing interaction is running.');\n return;\n }\n const xy = new Array();\n xy.push({ x: timeline(finger0.x), y: timeline(finger0.y) });\n const positions = [{ x: xy[0].x(0), y: xy[0].y(0) }];\n if (finger1 != null) {\n xy.push({ x: timeline(finger1.x), y: timeline(finger1.y) });\n positions.push({ x: xy[1].x(0), y: xy[1].y(0) });\n }\n let startTime = performance.now();\n const { width, height } = this[$scene];\n const dispatchTouches = (type) => {\n for (const [i, position] of positions.entries()) {\n const { style } = fingerElements[i];\n style.transform = `translateX(${width * position.x}px) translateY(${height * position.y}px)`;\n if (type === 'pointerdown') {\n style.opacity = '1';\n }\n else if (type === 'pointerup') {\n style.opacity = '0';\n }\n const init = {\n pointerId: i - 5678,\n pointerType: 'touch',\n target: inputElement,\n clientX: width * position.x,\n clientY: height * position.y,\n altKey: true // flag that this is not a user interaction\n };\n inputElement.dispatchEvent(new PointerEvent(type, init));\n }\n };\n const moveTouches = () => {\n // cancel interaction if user interacts\n if (this[$controls].isUserChange) {\n for (const fingerElement of this[$fingerAnimatedContainers]) {\n fingerElement.style.opacity = '0';\n }\n dispatchTouches('pointercancel');\n return;\n }\n const time = Math.min(1, (performance.now() - startTime) / duration);\n for (const [i, position] of positions.entries()) {\n position.x = xy[i].x(time);\n position.y = xy[i].y(time);\n }\n dispatchTouches('pointermove');\n if (time < 1) {\n requestAnimationFrame(moveTouches);\n }\n else {\n dispatchTouches('pointerup');\n document.removeEventListener('visibilitychange', onVisibilityChange);\n }\n };\n const onVisibilityChange = () => {\n let elapsed = 0;\n if (document.visibilityState === 'hidden') {\n elapsed = performance.now() - startTime;\n }\n else {\n startTime = performance.now() - elapsed;\n }\n };\n document.addEventListener('visibilitychange', onVisibilityChange);\n dispatchTouches('pointerdown');\n requestAnimationFrame(moveTouches);\n }\n [(_a = $promptElement, _b = $promptAnimatedContainer, _c = $fingerAnimatedContainers, _d = $panElement, _e = $focusedTime, _f = $lastPromptOffset, _g = $promptElementVisibleTime, _h = $userHasInteracted, _j = $waitingToPromptUser, _k = $controls, _l = $lastSpherical, _m = $jumpCamera, _o = $initialized, _p = $maintainThetaPhi, $syncFieldOfView)](style) {\n const scene = this[$scene];\n scene.framedFoVDeg = style[0] * 180 / Math.PI;\n this[$controls].setFieldOfView(scene.adjustedFoV(scene.framedFoVDeg));\n }\n [$syncCameraOrbit](style) {\n const controls = this[$controls];\n if (this[$maintainThetaPhi]) {\n const { theta, phi } = this.getCameraOrbit();\n style[0] = theta;\n style[1] = phi;\n this[$maintainThetaPhi] = false;\n }\n controls.isUserChange = false;\n controls.setOrbit(style[0], style[1], style[2]);\n }\n [$syncMinCameraOrbit](style) {\n this[$controls].applyOptions({\n minimumAzimuthalAngle: style[0],\n minimumPolarAngle: style[1],\n minimumRadius: style[2]\n });\n this.jumpCameraToGoal();\n }\n [$syncMaxCameraOrbit](style) {\n this[$controls].applyOptions({\n maximumAzimuthalAngle: style[0],\n maximumPolarAngle: style[1],\n maximumRadius: style[2]\n });\n this[$updateCameraForRadius](style[2]);\n this.jumpCameraToGoal();\n }\n [$syncMinFieldOfView](style) {\n this[$controls].applyOptions({ minimumFieldOfView: style[0] * 180 / Math.PI });\n this.jumpCameraToGoal();\n }\n [$syncMaxFieldOfView](style) {\n const fov = this[$scene].adjustedFoV(style[0] * 180 / Math.PI);\n this[$controls].applyOptions({ maximumFieldOfView: fov });\n this.jumpCameraToGoal();\n }\n [$syncCameraTarget](style) {\n const [x, y, z] = style;\n if (!this[$renderer].arRenderer.isPresenting) {\n this[$scene].setTarget(x, y, z);\n }\n this[$controls].isUserChange = false;\n this[$renderer].arRenderer.updateTarget();\n }\n [$tick](time, delta) {\n super[$tick](time, delta);\n if (this[$renderer].isPresenting || !this[$hasTransitioned]()) {\n return;\n }\n const controls = this[$controls];\n const scene = this[$scene];\n const now = performance.now();\n if (this[$waitingToPromptUser]) {\n const thresholdTime = this.interactionPrompt === InteractionPromptStrategy.AUTO ?\n this[$loadedTime] :\n this[$focusedTime];\n if (this.loaded &&\n now > thresholdTime + this.interactionPromptThreshold) {\n this[$waitingToPromptUser] = false;\n this[$promptElementVisibleTime] = now;\n this[$promptElement].classList.add('visible');\n }\n }\n if (isFinite(this[$promptElementVisibleTime]) &&\n this.interactionPromptStyle === InteractionPromptStyle.WIGGLE) {\n const animationTime = ((now - this[$promptElementVisibleTime]) / PROMPT_ANIMATION_TIME) %\n 1;\n const offset = wiggle(animationTime);\n const opacity = fade(animationTime);\n this[$promptAnimatedContainer].style.opacity = `${opacity}`;\n if (offset !== this[$lastPromptOffset]) {\n const xOffset = offset * scene.width * 0.05;\n const deltaTheta = (offset - this[$lastPromptOffset]) * Math.PI / 16;\n this[$promptAnimatedContainer].style.transform =\n `translateX(${xOffset}px)`;\n controls.isUserChange = false;\n controls.adjustOrbit(deltaTheta, 0, 0);\n this[$lastPromptOffset] = offset;\n }\n }\n controls.update(time, delta);\n if (scene.updateTarget(delta)) {\n const source = controls.isUserChange ? ChangeSource.USER_INTERACTION :\n ChangeSource.NONE;\n this[$onChange]({ type: 'change', source });\n }\n }\n [$deferInteractionPrompt]() {\n // Effectively cancel the timer waiting for user interaction:\n this[$waitingToPromptUser] = false;\n this[$promptElement].classList.remove('visible');\n this[$promptElementVisibleTime] = Infinity;\n }\n /**\n * Updates the camera's near and far planes to enclose the scene when\n * orbiting at the supplied radius.\n */\n [$updateCameraForRadius](radius) {\n const maximumRadius = Math.max(this[$scene].boundingSphere.radius, radius);\n const near = 0;\n const far = 2 * maximumRadius;\n this[$controls].updateNearFar(near, far);\n }\n [$updateAria]() {\n const { theta, phi } = this[$controls].getCameraSpherical(this[$lastSpherical]);\n const azimuthalQuadrant = (4 + Math.floor(((theta % TAU) + QUARTER_PI) / HALF_PI)) % 4;\n const polarTrient = Math.floor(phi / THIRD_PI);\n const azimuthalQuadrantLabel = AZIMUTHAL_QUADRANT_LABELS[azimuthalQuadrant];\n const polarTrientLabel = POLAR_TRIENT_LABELS[polarTrient];\n this[$updateStatus](`View from stage ${polarTrientLabel}${azimuthalQuadrantLabel}`);\n }\n get [$ariaLabel]() {\n return super[$ariaLabel] +\n (this.cameraControls ? INTERACTION_PROMPT : '');\n }\n async [$onResize](event) {\n const controls = this[$controls];\n const scene = this[$scene];\n const oldFramedFoV = scene.adjustedFoV(scene.framedFoVDeg);\n // The super of $onResize may update the scene's adjustedFoV, so we\n // compare the before and after to calculate the proper zoom.\n super[$onResize](event);\n const fovRatio = scene.adjustedFoV(scene.framedFoVDeg) / oldFramedFoV;\n const fov = controls.getFieldOfView() * (isFinite(fovRatio) ? fovRatio : 1);\n controls.updateAspect(this[$scene].aspect);\n this.requestUpdate('maxFieldOfView', this.maxFieldOfView);\n await this.updateComplete;\n this[$controls].setFieldOfView(fov);\n this.jumpCameraToGoal();\n }\n [$onModelLoad]() {\n super[$onModelLoad]();\n if (this[$initialized]) {\n this[$maintainThetaPhi] = true;\n }\n else {\n this[$initialized] = true;\n }\n this.requestUpdate('maxFieldOfView', this.maxFieldOfView);\n this.requestUpdate('fieldOfView', this.fieldOfView);\n this.requestUpdate('minCameraOrbit', this.minCameraOrbit);\n this.requestUpdate('maxCameraOrbit', this.maxCameraOrbit);\n this.requestUpdate('cameraOrbit', this.cameraOrbit);\n this.requestUpdate('cameraTarget', this.cameraTarget);\n this.jumpCameraToGoal();\n }\n }\n _q = $onFocus, _r = $onBlur, _s = $onChange, _t = $onPointerChange;\n __decorate$3([\n e$3({ type: Boolean, attribute: 'camera-controls' })\n ], ControlsModelViewerElement.prototype, \"cameraControls\", void 0);\n __decorate$3([\n style({\n intrinsics: cameraOrbitIntrinsics,\n observeEffects: true,\n updateHandler: $syncCameraOrbit\n }),\n e$3({ type: String, attribute: 'camera-orbit', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"cameraOrbit\", void 0);\n __decorate$3([\n style({\n intrinsics: cameraTargetIntrinsics,\n observeEffects: true,\n updateHandler: $syncCameraTarget\n }),\n e$3({ type: String, attribute: 'camera-target', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"cameraTarget\", void 0);\n __decorate$3([\n style({\n intrinsics: fieldOfViewIntrinsics,\n observeEffects: true,\n updateHandler: $syncFieldOfView\n }),\n e$3({ type: String, attribute: 'field-of-view', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"fieldOfView\", void 0);\n __decorate$3([\n style({\n intrinsics: minCameraOrbitIntrinsics,\n updateHandler: $syncMinCameraOrbit\n }),\n e$3({ type: String, attribute: 'min-camera-orbit', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"minCameraOrbit\", void 0);\n __decorate$3([\n style({\n intrinsics: maxCameraOrbitIntrinsics,\n updateHandler: $syncMaxCameraOrbit\n }),\n e$3({ type: String, attribute: 'max-camera-orbit', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"maxCameraOrbit\", void 0);\n __decorate$3([\n style({\n intrinsics: minFieldOfViewIntrinsics,\n updateHandler: $syncMinFieldOfView\n }),\n e$3({ type: String, attribute: 'min-field-of-view', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"minFieldOfView\", void 0);\n __decorate$3([\n style({ intrinsics: fieldOfViewIntrinsics, updateHandler: $syncMaxFieldOfView }),\n e$3({ type: String, attribute: 'max-field-of-view', hasChanged: () => true })\n ], ControlsModelViewerElement.prototype, \"maxFieldOfView\", void 0);\n __decorate$3([\n e$3({ type: Number, attribute: 'interaction-prompt-threshold' })\n ], ControlsModelViewerElement.prototype, \"interactionPromptThreshold\", void 0);\n __decorate$3([\n e$3({ type: String, attribute: 'interaction-prompt-style' })\n ], ControlsModelViewerElement.prototype, \"interactionPromptStyle\", void 0);\n __decorate$3([\n e$3({ type: String, attribute: 'interaction-prompt' })\n ], ControlsModelViewerElement.prototype, \"interactionPrompt\", void 0);\n __decorate$3([\n e$3({ type: String, attribute: 'interaction-policy' })\n ], ControlsModelViewerElement.prototype, \"interactionPolicy\", void 0);\n __decorate$3([\n e$3({ type: Number, attribute: 'orbit-sensitivity' })\n ], ControlsModelViewerElement.prototype, \"orbitSensitivity\", void 0);\n __decorate$3([\n e$3({ type: String, attribute: 'touch-action' })\n ], ControlsModelViewerElement.prototype, \"touchAction\", void 0);\n __decorate$3([\n e$3({ type: Boolean, attribute: 'disable-zoom' })\n ], ControlsModelViewerElement.prototype, \"disableZoom\", void 0);\n __decorate$3([\n e$3({ type: Boolean, attribute: 'enable-pan' })\n ], ControlsModelViewerElement.prototype, \"enablePan\", void 0);\n __decorate$3([\n e$3({ type: Number, attribute: 'interpolation-decay' })\n ], ControlsModelViewerElement.prototype, \"interpolationDecay\", void 0);\n __decorate$3([\n e$3({ type: String, attribute: 'bounds' })\n ], ControlsModelViewerElement.prototype, \"bounds\", void 0);\n return ControlsModelViewerElement;\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nconst PROGRESS_BAR_UPDATE_THRESHOLD = 100;\nconst PROGRESS_MASK_BASE_OPACITY = 0.2;\nconst DEFAULT_DRACO_DECODER_LOCATION = 'https://www.gstatic.com/draco/versioned/decoders/1.4.1/';\nconst DEFAULT_KTX2_TRANSCODER_LOCATION = 'https://www.gstatic.com/basis-universal/versioned/2021-04-15-ba1c3e4/';\nconst SPACE_KEY = 32;\nconst ENTER_KEY = 13;\nconst RevealStrategy = {\n AUTO: 'auto',\n INTERACTION: 'interaction',\n MANUAL: 'manual'\n};\nconst LoadingStrategy = {\n AUTO: 'auto',\n LAZY: 'lazy',\n EAGER: 'eager'\n};\nconst PosterDismissalSource = {\n INTERACTION: 'interaction'\n};\nconst $defaultProgressBarElement = Symbol('defaultProgressBarElement');\nconst $defaultProgressMaskElement = Symbol('defaultProgressMaskElement');\nconst $posterContainerElement = Symbol('posterContainerElement');\nconst $defaultPosterElement = Symbol('defaultPosterElement');\nconst $posterDismissalSource = Symbol('posterDismissalSource');\nconst $hidePoster = Symbol('hidePoster');\nconst $modelIsRevealed = Symbol('modelIsRevealed');\nconst $updateProgressBar = Symbol('updateProgressBar');\nconst $lastReportedProgress = Symbol('lastReportedProgress');\nconst $transitioned = Symbol('transitioned');\nconst $onTransitionEnd = Symbol('onTransitionEnd');\nconst $ariaLabelCallToAction = Symbol('ariaLabelCallToAction');\nconst $onClick = Symbol('onClick');\nconst $onKeydown = Symbol('onKeydown');\nconst $onProgress = Symbol('onProgress');\n/**\n * LoadingMixin implements features related to lazy loading, as well as\n * presentation details related to the pre-load / pre-render presentation of a\n * \n *\n * This mixin implements support for models with DRACO-compressed meshes.\n * The DRACO decoder will be loaded on-demand if a glTF that uses the DRACO mesh\n * compression extension is encountered.\n *\n * By default, the DRACO decoder will be loaded from a Google CDN. It is\n * possible to customize where the decoder is loaded from by defining a global\n * configuration option for `` like so:\n *\n * ```html\n * \n * ```\n *\n * Note that the above configuration strategy must be performed *before* the\n * first `` element is created in the browser. The configuration\n * can be done anywhere, but the easiest way to ensure it is done at the right\n * time is to do it in the `` of the HTML document. This is the\n * recommended way to set the location because it is most compatible with\n * scenarios where the `` library is lazily loaded.\n *\n * If you absolutely have to set the DRACO decoder location *after* the first\n * `` element is created, you can do it this way:\n *\n * ```html\n * \n * ```\n *\n * Note that the above configuration approach will not work until *after*\n * `` is defined in the browser. Also note that this configuration\n * *must* be set *before* the first DRACO model is fully loaded.\n *\n * It is recommended that users who intend to take advantage of DRACO mesh\n * compression consider whether or not it is acceptable for their use case to\n * have code side-loaded from a Google CDN. If it is not acceptable, then the\n * location must be customized before loading any DRACO models in order to cause\n * the decoder to be loaded from an alternative, acceptable location.\n */\nconst LoadingMixin = (ModelViewerElement) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n class LoadingModelViewerElement extends ModelViewerElement {\n constructor(...args) {\n super(...args);\n /**\n * A URL pointing to the image to use as a poster in scenarios where the\n * is not ready to reveal a rendered model to the viewer.\n */\n this.poster = null;\n /**\n * An enumerable attribute describing under what conditions the\n * should reveal a model to the viewer.\n *\n * The default value is \"auto\". The only supported alternative values are\n * \"interaction\" and \"manual\".\n */\n this.reveal = RevealStrategy.AUTO;\n /**\n * An enumerable attribute describing under what conditions the\n * should preload a model.\n *\n * The default value is \"auto\". The only supported alternative values are\n * \"lazy\" and \"eager\". Auto is equivalent to lazy, which loads the model\n * when it is near the viewport for reveal = \"auto\", and when interacted\n * with for reveal = \"interaction\". Eager loads the model immediately.\n */\n this.loading = LoadingStrategy.AUTO;\n /**\n * Generates a 3D model schema https://schema.org/3DModel associated with\n * the loaded src and inserts it into the header of the page for search\n * engines to crawl.\n */\n this.generateSchema = false;\n /**\n * If you're using a seamless poster as generated by toBlob({idealAspect:\n * true}) with --poster-color transparent (which is recommended), then set\n * this attribute to true to turn off the poster's transition. This keeps\n * the shadow from blinking and the transition is no longer necessary since\n * the poster matches the rendering.\n */\n this.seamlessPoster = false;\n this[_a] = false;\n this[_b] = false;\n this[_c] = 0;\n this[_d] = null;\n // TODO: Add this to the shadow root as part of this mixin's\n // implementation:\n this[_e] = this.shadowRoot.querySelector('.slot.poster');\n this[_f] = this.shadowRoot.querySelector('#default-poster');\n this[_g] = this.shadowRoot.querySelector('#default-progress-bar > .bar');\n this[_h] = this.shadowRoot.querySelector('#default-progress-bar > .mask');\n this[_j] = this[$defaultPosterElement].getAttribute('aria-label');\n this[_k] = throttle((progress) => {\n const parentNode = this[$defaultProgressBarElement].parentNode;\n requestAnimationFrame(() => {\n this[$defaultProgressMaskElement].style.opacity =\n `${(1.0 - progress) * PROGRESS_MASK_BASE_OPACITY}`;\n this[$defaultProgressBarElement].style.transform =\n `scaleX(${progress})`;\n if (progress === 0) {\n // NOTE(cdata): We remove and re-append the progress bar in this\n // condition so that the progress bar does not appear to\n // transition backwards from the right when we reset to 0 (or\n // otherwise <1) progress after having already reached 1 progress\n // previously.\n parentNode.removeChild(this[$defaultProgressBarElement]);\n parentNode.appendChild(this[$defaultProgressBarElement]);\n }\n // NOTE(cdata): IE11 does not properly respect the second parameter\n // of classList.toggle, which this implementation originally used.\n // @see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11865865/\n if (progress === 1.0) {\n this[$defaultProgressBarElement].classList.add('hide');\n }\n else {\n this[$defaultProgressBarElement].classList.remove('hide');\n }\n });\n }, PROGRESS_BAR_UPDATE_THRESHOLD);\n this[_l] = () => {\n if (this.reveal === RevealStrategy.MANUAL ||\n this.reveal === RevealStrategy.AUTO) {\n return;\n }\n this.dismissPoster();\n };\n this[_m] = (event) => {\n if (this.reveal === RevealStrategy.MANUAL) {\n return;\n }\n switch (event.keyCode) {\n // NOTE(cdata): Links and buttons can typically be activated with\n // both spacebar and enter to produce a synthetic click action\n case SPACE_KEY:\n case ENTER_KEY:\n this.dismissPoster();\n break;\n }\n };\n this[_o] = (event) => {\n const progress = event.detail.totalProgress;\n this[$lastReportedProgress] =\n Math.max(progress, this[$lastReportedProgress]);\n if (progress === 1.0) {\n this[$updateProgressBar].flush();\n if (this[$sceneIsReady]() &&\n (this[$posterDismissalSource] != null ||\n this.reveal === RevealStrategy.AUTO)) {\n this[$hidePoster]();\n }\n }\n this[$updateProgressBar](progress);\n this.dispatchEvent(new CustomEvent('progress', { detail: { totalProgress: progress } }));\n };\n this[_p] = () => {\n this[$transitioned] = true;\n const root = this.getRootNode();\n // If the is still focused, forward the focus to\n // the canvas that has just been revealed\n if (root && root.activeElement === this) {\n this[$userInputElement].focus();\n }\n // Ensure that the poster is no longer focusable or visible to\n // screen readers\n const defaultPosterElement = this[$defaultPosterElement];\n defaultPosterElement.setAttribute('aria-hidden', 'true');\n defaultPosterElement.tabIndex = -1;\n this.dispatchEvent(new CustomEvent('poster-dismissed'));\n };\n const ModelViewerElement = self.ModelViewerElement || {};\n const dracoDecoderLocation = ModelViewerElement.dracoDecoderLocation ||\n DEFAULT_DRACO_DECODER_LOCATION;\n CachingGLTFLoader.setDRACODecoderLocation(dracoDecoderLocation);\n const ktx2TranscoderLocation = ModelViewerElement.ktx2TranscoderLocation ||\n DEFAULT_KTX2_TRANSCODER_LOCATION;\n CachingGLTFLoader.setKTX2TranscoderLocation(ktx2TranscoderLocation);\n if (ModelViewerElement.meshoptDecoderLocation) {\n CachingGLTFLoader.setMeshoptDecoderLocation(ModelViewerElement.meshoptDecoderLocation);\n }\n }\n static set dracoDecoderLocation(value) {\n CachingGLTFLoader.setDRACODecoderLocation(value);\n }\n static get dracoDecoderLocation() {\n return CachingGLTFLoader.getDRACODecoderLocation();\n }\n static set ktx2TranscoderLocation(value) {\n CachingGLTFLoader.setKTX2TranscoderLocation(value);\n }\n static get ktx2TranscoderLocation() {\n return CachingGLTFLoader.getKTX2TranscoderLocation();\n }\n static set meshoptDecoderLocation(value) {\n CachingGLTFLoader.setMeshoptDecoderLocation(value);\n }\n static get meshoptDecoderLocation() {\n return CachingGLTFLoader.getMeshoptDecoderLocation();\n }\n /**\n * If provided, the callback will be passed each resource URL before a\n * request is sent. The callback may return the original URL, or a new URL\n * to override loading behavior. This behavior can be used to load assets\n * from .ZIP files, drag-and-drop APIs, and Data URIs.\n */\n static mapURLs(callback) {\n Renderer.singleton.loader[$loader].manager.setURLModifier(callback);\n }\n /**\n * Dismisses the poster, causing the model to load and render if\n * necessary. This is currently effectively the same as interacting with\n * the poster via user input.\n */\n dismissPoster() {\n if (this[$sceneIsReady]()) {\n this[$hidePoster]();\n }\n else {\n this[$posterDismissalSource] = PosterDismissalSource.INTERACTION;\n this[$updateSource]();\n }\n }\n /**\n * Displays the poster, hiding the 3D model. If this is called after the 3D\n * model has been revealed, then it will behave as though\n * reveal='interaction', being dismissed either by a user click or a call to\n * dismissPoster().\n */\n showPoster() {\n const posterContainerElement = this[$posterContainerElement];\n const defaultPosterElement = this[$defaultPosterElement];\n defaultPosterElement.removeAttribute('tabindex');\n defaultPosterElement.removeAttribute('aria-hidden');\n posterContainerElement.classList.add('show');\n const oldVisibility = this.modelIsVisible;\n this[$modelIsRevealed] = false;\n this[$announceModelVisibility](oldVisibility);\n this[$transitioned] = false;\n }\n /**\n * Returns the model's bounding box dimensions in meters, independent of\n * turntable rotation.\n */\n getDimensions() {\n return toVector3D(this[$scene].size);\n }\n connectedCallback() {\n super.connectedCallback();\n // Fired when a user first clicks the model element. Used to\n // change the visibility of a poster image, or start loading\n // a model.\n this[$posterContainerElement].addEventListener('click', this[$onClick]);\n this[$posterContainerElement].addEventListener('keydown', this[$onKeydown]);\n this[$progressTracker].addEventListener('progress', this[$onProgress]);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this[$posterContainerElement].removeEventListener('click', this[$onClick]);\n this[$posterContainerElement].removeEventListener('keydown', this[$onKeydown]);\n this[$progressTracker].removeEventListener('progress', this[$onProgress]);\n }\n async updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('poster') && this.poster != null) {\n this[$defaultPosterElement].style.backgroundImage =\n `url(${this.poster})`;\n }\n if (changedProperties.has('alt')) {\n this[$defaultPosterElement].setAttribute('aria-label', this[$altDefaulted]);\n }\n if (changedProperties.has('reveal') || changedProperties.has('loading')) {\n this[$updateSource]();\n }\n if (changedProperties.has('generateSchema')) {\n if (this.generateSchema === true) {\n this[$scene].updateSchema(this.src);\n }\n else {\n this[$scene].updateSchema(null);\n }\n }\n if (changedProperties.has('seamlessPoster')) {\n if (this.seamlessPoster === true) {\n this[$posterContainerElement].classList.add('quick');\n }\n else {\n this[$posterContainerElement].classList.remove('quick');\n }\n }\n }\n [(_a = $modelIsRevealed, _b = $transitioned, _c = $lastReportedProgress, _d = $posterDismissalSource, _e = $posterContainerElement, _f = $defaultPosterElement, _g = $defaultProgressBarElement, _h = $defaultProgressMaskElement, _j = $ariaLabelCallToAction, _k = $updateProgressBar, _l = $onClick, _m = $onKeydown, _o = $onProgress, $shouldAttemptPreload)]() {\n return !!this.src &&\n (this[$posterDismissalSource] != null ||\n this.loading === LoadingStrategy.EAGER ||\n (this.reveal === RevealStrategy.AUTO && this[$isElementInViewport]));\n }\n [$sceneIsReady]() {\n const { src } = this;\n return !!src && super[$sceneIsReady]() &&\n this[$lastReportedProgress] === 1.0;\n }\n [(_p = $onTransitionEnd, $hidePoster)]() {\n this[$posterDismissalSource] = null;\n const posterContainerElement = this[$posterContainerElement];\n if (posterContainerElement.classList.contains('show')) {\n const oldVisibility = this.modelIsVisible;\n this[$modelIsRevealed] = true;\n this[$announceModelVisibility](oldVisibility);\n requestAnimationFrame(() => {\n posterContainerElement.classList.remove('show');\n if (this.seamlessPoster === true) {\n this[$onTransitionEnd]();\n }\n else {\n // We might need to forward focus to our internal canvas, but that\n // cannot happen until the poster has completely transitioned away\n posterContainerElement.addEventListener('transitionend', this[$onTransitionEnd], { once: true });\n }\n });\n }\n else {\n this[$transitioned] = true;\n }\n }\n [$getModelIsVisible]() {\n return super[$getModelIsVisible]() && this[$modelIsRevealed];\n }\n [$hasTransitioned]() {\n return super[$hasTransitioned]() && this[$transitioned];\n }\n async [$updateSource]() {\n this[$lastReportedProgress] = 0;\n if (this.generateSchema === true) {\n this[$scene].updateSchema(this.src);\n }\n if (this[$scene].currentGLTF == null || this.src == null ||\n !this[$shouldAttemptPreload]()) {\n // Don't show the poster when switching models.\n this.showPoster();\n }\n this[$updateStatus]('Loading');\n await super[$updateSource]();\n }\n }\n __decorate$2([\n e$3({ type: String })\n ], LoadingModelViewerElement.prototype, \"poster\", void 0);\n __decorate$2([\n e$3({ type: String })\n ], LoadingModelViewerElement.prototype, \"reveal\", void 0);\n __decorate$2([\n e$3({ type: String })\n ], LoadingModelViewerElement.prototype, \"loading\", void 0);\n __decorate$2([\n e$3({ type: Boolean, attribute: 'generate-schema' })\n ], LoadingModelViewerElement.prototype, \"generateSchema\", void 0);\n __decorate$2([\n e$3({ type: Boolean, attribute: 'seamless-poster' })\n ], LoadingModelViewerElement.prototype, \"seamlessPoster\", void 0);\n return LoadingModelViewerElement;\n};\n\nclass GLTFExporter {\n\n\tconstructor() {\n\n\t\tthis.pluginCallbacks = [];\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFLightExtension( writer );\n\n\t\t} );\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFMaterialsUnlitExtension( writer );\n\n\t\t} );\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFMaterialsPBRSpecularGlossiness( writer );\n\n\t\t} );\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFMaterialsTransmissionExtension( writer );\n\n\t\t} );\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFMaterialsVolumeExtension( writer );\n\n\t\t} );\n\n\t\tthis.register( function ( writer ) {\n\n\t\t\treturn new GLTFMaterialsClearcoatExtension( writer );\n\n\t\t} );\n\n\t}\n\n\tregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) === - 1 ) {\n\n\t\t\tthis.pluginCallbacks.push( callback );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunregister( callback ) {\n\n\t\tif ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) {\n\n\t\t\tthis.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Parse scenes and generate GLTF output\n\t * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes\n\t * @param {Function} onDone Callback on completed\n\t * @param {Function} onError Callback on errors\n\t * @param {Object} options options\n\t */\n\tparse( input, onDone, onError, options ) {\n\n\t\tif ( typeof onError === 'object' ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: parse() expects options as the fourth argument now.' );\n\n\t\t\toptions = onError;\n\n\t\t}\n\n\t\tconst writer = new GLTFWriter();\n\t\tconst plugins = [];\n\n\t\tfor ( let i = 0, il = this.pluginCallbacks.length; i < il; i ++ ) {\n\n\t\t\tplugins.push( this.pluginCallbacks[ i ]( writer ) );\n\n\t\t}\n\n\t\twriter.setPlugins( plugins );\n\t\twriter.write( input, onDone, options ).catch( onError );\n\n\t}\n\n\tparseAsync( input, options ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.parse( input, resolve, reject, options );\n\n\t\t} );\n\n\t}\n\n}\n\n//------------------------------------------------------------------------------\n// Constants\n//------------------------------------------------------------------------------\n\nconst WEBGL_CONSTANTS = {\n\tPOINTS: 0x0000,\n\tLINES: 0x0001,\n\tLINE_LOOP: 0x0002,\n\tLINE_STRIP: 0x0003,\n\tTRIANGLES: 0x0004,\n\tTRIANGLE_STRIP: 0x0005,\n\tTRIANGLE_FAN: 0x0006,\n\n\tUNSIGNED_BYTE: 0x1401,\n\tUNSIGNED_SHORT: 0x1403,\n\tFLOAT: 0x1406,\n\tUNSIGNED_INT: 0x1405,\n\tARRAY_BUFFER: 0x8892,\n\tELEMENT_ARRAY_BUFFER: 0x8893,\n\n\tNEAREST: 0x2600,\n\tLINEAR: 0x2601,\n\tNEAREST_MIPMAP_NEAREST: 0x2700,\n\tLINEAR_MIPMAP_NEAREST: 0x2701,\n\tNEAREST_MIPMAP_LINEAR: 0x2702,\n\tLINEAR_MIPMAP_LINEAR: 0x2703,\n\n\tCLAMP_TO_EDGE: 33071,\n\tMIRRORED_REPEAT: 33648,\n\tREPEAT: 10497\n};\n\nconst THREE_TO_WEBGL = {};\n\nTHREE_TO_WEBGL[ NearestFilter ] = WEBGL_CONSTANTS.NEAREST;\nTHREE_TO_WEBGL[ NearestMipmapNearestFilter ] = WEBGL_CONSTANTS.NEAREST_MIPMAP_NEAREST;\nTHREE_TO_WEBGL[ NearestMipmapLinearFilter ] = WEBGL_CONSTANTS.NEAREST_MIPMAP_LINEAR;\nTHREE_TO_WEBGL[ LinearFilter ] = WEBGL_CONSTANTS.LINEAR;\nTHREE_TO_WEBGL[ LinearMipmapNearestFilter ] = WEBGL_CONSTANTS.LINEAR_MIPMAP_NEAREST;\nTHREE_TO_WEBGL[ LinearMipmapLinearFilter ] = WEBGL_CONSTANTS.LINEAR_MIPMAP_LINEAR;\n\nTHREE_TO_WEBGL[ ClampToEdgeWrapping ] = WEBGL_CONSTANTS.CLAMP_TO_EDGE;\nTHREE_TO_WEBGL[ RepeatWrapping ] = WEBGL_CONSTANTS.REPEAT;\nTHREE_TO_WEBGL[ MirroredRepeatWrapping ] = WEBGL_CONSTANTS.MIRRORED_REPEAT;\n\nconst PATH_PROPERTIES = {\n\tscale: 'scale',\n\tposition: 'translation',\n\tquaternion: 'rotation',\n\tmorphTargetInfluences: 'weights'\n};\n\n// GLB constants\n// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#glb-file-format-specification\n\nconst GLB_HEADER_BYTES = 12;\nconst GLB_HEADER_MAGIC = 0x46546C67;\nconst GLB_VERSION = 2;\n\nconst GLB_CHUNK_PREFIX_BYTES = 8;\nconst GLB_CHUNK_TYPE_JSON = 0x4E4F534A;\nconst GLB_CHUNK_TYPE_BIN = 0x004E4942;\n\n//------------------------------------------------------------------------------\n// Utility functions\n//------------------------------------------------------------------------------\n\n/**\n * Compare two arrays\n * @param {Array} array1 Array 1 to compare\n * @param {Array} array2 Array 2 to compare\n * @return {Boolean} Returns true if both arrays are equal\n */\nfunction equalArray( array1, array2 ) {\n\n\treturn ( array1.length === array2.length ) && array1.every( function ( element, index ) {\n\n\t\treturn element === array2[ index ];\n\n\t} );\n\n}\n\n/**\n * Converts a string to an ArrayBuffer.\n * @param {string} text\n * @return {ArrayBuffer}\n */\nfunction stringToArrayBuffer( text ) {\n\n\tif ( window.TextEncoder !== undefined ) {\n\n\t\treturn new TextEncoder().encode( text ).buffer;\n\n\t}\n\n\tconst array = new Uint8Array( new ArrayBuffer( text.length ) );\n\n\tfor ( let i = 0, il = text.length; i < il; i ++ ) {\n\n\t\tconst value = text.charCodeAt( i );\n\n\t\t// Replacing multi-byte character with space(0x20).\n\t\tarray[ i ] = value > 0xFF ? 0x20 : value;\n\n\t}\n\n\treturn array.buffer;\n\n}\n\n/**\n * Is identity matrix\n *\n * @param {Matrix4} matrix\n * @returns {Boolean} Returns true, if parameter is identity matrix\n */\nfunction isIdentityMatrix( matrix ) {\n\n\treturn equalArray( matrix.elements, [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] );\n\n}\n\n/**\n * Get the min and max vectors from the given attribute\n * @param {BufferAttribute} attribute Attribute to find the min/max in range from start to start + count\n * @param {Integer} start\n * @param {Integer} count\n * @return {Object} Object containing the `min` and `max` values (As an array of attribute.itemSize components)\n */\nfunction getMinMax( attribute, start, count ) {\n\n\tconst output = {\n\n\t\tmin: new Array( attribute.itemSize ).fill( Number.POSITIVE_INFINITY ),\n\t\tmax: new Array( attribute.itemSize ).fill( Number.NEGATIVE_INFINITY )\n\n\t};\n\n\tfor ( let i = start; i < start + count; i ++ ) {\n\n\t\tfor ( let a = 0; a < attribute.itemSize; a ++ ) {\n\n\t\t\tlet value;\n\n\t\t\tif ( attribute.itemSize > 4 ) {\n\n\t\t\t\t // no support for interleaved data for itemSize > 4\n\n\t\t\t\tvalue = attribute.array[ i * attribute.itemSize + a ];\n\n\t\t\t} else {\n\n\t\t\t\tif ( a === 0 ) value = attribute.getX( i );\n\t\t\t\telse if ( a === 1 ) value = attribute.getY( i );\n\t\t\t\telse if ( a === 2 ) value = attribute.getZ( i );\n\t\t\t\telse if ( a === 3 ) value = attribute.getW( i );\n\n\t\t\t}\n\n\t\t\toutput.min[ a ] = Math.min( output.min[ a ], value );\n\t\t\toutput.max[ a ] = Math.max( output.max[ a ], value );\n\n\t\t}\n\n\t}\n\n\treturn output;\n\n}\n\n/**\n * Get the required size + padding for a buffer, rounded to the next 4-byte boundary.\n * https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#data-alignment\n *\n * @param {Integer} bufferSize The size the original buffer.\n * @returns {Integer} new buffer size with required padding.\n *\n */\nfunction getPaddedBufferSize( bufferSize ) {\n\n\treturn Math.ceil( bufferSize / 4 ) * 4;\n\n}\n\n/**\n * Returns a buffer aligned to 4-byte boundary.\n *\n * @param {ArrayBuffer} arrayBuffer Buffer to pad\n * @param {Integer} paddingByte (Optional)\n * @returns {ArrayBuffer} The same buffer if it's already aligned to 4-byte boundary or a new buffer\n */\nfunction getPaddedArrayBuffer( arrayBuffer, paddingByte = 0 ) {\n\n\tconst paddedLength = getPaddedBufferSize( arrayBuffer.byteLength );\n\n\tif ( paddedLength !== arrayBuffer.byteLength ) {\n\n\t\tconst array = new Uint8Array( paddedLength );\n\t\tarray.set( new Uint8Array( arrayBuffer ) );\n\n\t\tif ( paddingByte !== 0 ) {\n\n\t\t\tfor ( let i = arrayBuffer.byteLength; i < paddedLength; i ++ ) {\n\n\t\t\t\tarray[ i ] = paddingByte;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn array.buffer;\n\n\t}\n\n\treturn arrayBuffer;\n\n}\n\nlet cachedCanvas = null;\n\n/**\n * Writer\n */\nclass GLTFWriter {\n\n\tconstructor() {\n\n\t\tthis.plugins = [];\n\n\t\tthis.options = {};\n\t\tthis.pending = [];\n\t\tthis.buffers = [];\n\n\t\tthis.byteOffset = 0;\n\t\tthis.buffers = [];\n\t\tthis.nodeMap = new Map();\n\t\tthis.skins = [];\n\t\tthis.extensionsUsed = {};\n\n\t\tthis.uids = new Map();\n\t\tthis.uid = 0;\n\n\t\tthis.json = {\n\t\t\tasset: {\n\t\t\t\tversion: '2.0',\n\t\t\t\tgenerator: 'THREE.GLTFExporter'\n\t\t\t}\n\t\t};\n\n\t\tthis.cache = {\n\t\t\tmeshes: new Map(),\n\t\t\tattributes: new Map(),\n\t\t\tattributesNormalized: new Map(),\n\t\t\tmaterials: new Map(),\n\t\t\ttextures: new Map(),\n\t\t\timages: new Map()\n\t\t};\n\n\t}\n\n\tsetPlugins( plugins ) {\n\n\t\tthis.plugins = plugins;\n\n\t}\n\n\t/**\n\t * Parse scenes and generate GLTF output\n\t * @param {Scene or [THREE.Scenes]} input Scene or Array of THREE.Scenes\n\t * @param {Function} onDone Callback on completed\n\t * @param {Object} options options\n\t */\n\tasync write( input, onDone, options ) {\n\n\t\tthis.options = Object.assign( {}, {\n\t\t\t// default options\n\t\t\tbinary: false,\n\t\t\ttrs: false,\n\t\t\tonlyVisible: true,\n\t\t\ttruncateDrawRange: true,\n\t\t\tembedImages: true,\n\t\t\tmaxTextureSize: Infinity,\n\t\t\tanimations: [],\n\t\t\tincludeCustomExtensions: false\n\t\t}, options );\n\n\t\tif ( this.options.animations.length > 0 ) {\n\n\t\t\t// Only TRS properties, and not matrices, may be targeted by animation.\n\t\t\tthis.options.trs = true;\n\n\t\t}\n\n\t\tthis.processInput( input );\n\n\t\tawait Promise.all( this.pending );\n\n\t\tconst writer = this;\n\t\tconst buffers = writer.buffers;\n\t\tconst json = writer.json;\n\t\toptions = writer.options;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\t// Merge buffers.\n\t\tconst blob = new Blob( buffers, { type: 'application/octet-stream' } );\n\n\t\t// Declare extensions.\n\t\tconst extensionsUsedList = Object.keys( extensionsUsed );\n\n\t\tif ( extensionsUsedList.length > 0 ) json.extensionsUsed = extensionsUsedList;\n\n\t\t// Update bytelength of the single buffer.\n\t\tif ( json.buffers && json.buffers.length > 0 ) json.buffers[ 0 ].byteLength = blob.size;\n\n\t\tif ( options.binary === true ) {\n\n\t\t\t// https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#glb-file-format-specification\n\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( blob );\n\t\t\treader.onloadend = function () {\n\n\t\t\t\t// Binary chunk.\n\t\t\t\tconst binaryChunk = getPaddedArrayBuffer( reader.result );\n\t\t\t\tconst binaryChunkPrefix = new DataView( new ArrayBuffer( GLB_CHUNK_PREFIX_BYTES ) );\n\t\t\t\tbinaryChunkPrefix.setUint32( 0, binaryChunk.byteLength, true );\n\t\t\t\tbinaryChunkPrefix.setUint32( 4, GLB_CHUNK_TYPE_BIN, true );\n\n\t\t\t\t// JSON chunk.\n\t\t\t\tconst jsonChunk = getPaddedArrayBuffer( stringToArrayBuffer( JSON.stringify( json ) ), 0x20 );\n\t\t\t\tconst jsonChunkPrefix = new DataView( new ArrayBuffer( GLB_CHUNK_PREFIX_BYTES ) );\n\t\t\t\tjsonChunkPrefix.setUint32( 0, jsonChunk.byteLength, true );\n\t\t\t\tjsonChunkPrefix.setUint32( 4, GLB_CHUNK_TYPE_JSON, true );\n\n\t\t\t\t// GLB header.\n\t\t\t\tconst header = new ArrayBuffer( GLB_HEADER_BYTES );\n\t\t\t\tconst headerView = new DataView( header );\n\t\t\t\theaderView.setUint32( 0, GLB_HEADER_MAGIC, true );\n\t\t\t\theaderView.setUint32( 4, GLB_VERSION, true );\n\t\t\t\tconst totalByteLength = GLB_HEADER_BYTES\n\t\t\t\t\t+ jsonChunkPrefix.byteLength + jsonChunk.byteLength\n\t\t\t\t\t+ binaryChunkPrefix.byteLength + binaryChunk.byteLength;\n\t\t\t\theaderView.setUint32( 8, totalByteLength, true );\n\n\t\t\t\tconst glbBlob = new Blob( [\n\t\t\t\t\theader,\n\t\t\t\t\tjsonChunkPrefix,\n\t\t\t\t\tjsonChunk,\n\t\t\t\t\tbinaryChunkPrefix,\n\t\t\t\t\tbinaryChunk\n\t\t\t\t], { type: 'application/octet-stream' } );\n\n\t\t\t\tconst glbReader = new window.FileReader();\n\t\t\t\tglbReader.readAsArrayBuffer( glbBlob );\n\t\t\t\tglbReader.onloadend = function () {\n\n\t\t\t\t\tonDone( glbReader.result );\n\n\t\t\t\t};\n\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tif ( json.buffers && json.buffers.length > 0 ) {\n\n\t\t\t\tconst reader = new window.FileReader();\n\t\t\t\treader.readAsDataURL( blob );\n\t\t\t\treader.onloadend = function () {\n\n\t\t\t\t\tconst base64data = reader.result;\n\t\t\t\t\tjson.buffers[ 0 ].uri = base64data;\n\t\t\t\t\tonDone( json );\n\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tonDone( json );\n\n\t\t\t}\n\n\t\t}\n\n\n\t}\n\n\t/**\n\t * Serializes a userData.\n\t *\n\t * @param {THREE.Object3D|THREE.Material} object\n\t * @param {Object} objectDef\n\t */\n\tserializeUserData( object, objectDef ) {\n\n\t\tif ( Object.keys( object.userData ).length === 0 ) return;\n\n\t\tconst options = this.options;\n\t\tconst extensionsUsed = this.extensionsUsed;\n\n\t\ttry {\n\n\t\t\tconst json = JSON.parse( JSON.stringify( object.userData ) );\n\n\t\t\tif ( options.includeCustomExtensions && json.gltfExtensions ) {\n\n\t\t\t\tif ( objectDef.extensions === undefined ) objectDef.extensions = {};\n\n\t\t\t\tfor ( const extensionName in json.gltfExtensions ) {\n\n\t\t\t\t\tobjectDef.extensions[ extensionName ] = json.gltfExtensions[ extensionName ];\n\t\t\t\t\textensionsUsed[ extensionName ] = true;\n\n\t\t\t\t}\n\n\t\t\t\tdelete json.gltfExtensions;\n\n\t\t\t}\n\n\t\t\tif ( Object.keys( json ).length > 0 ) objectDef.extras = json;\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: userData of \\'' + object.name + '\\' ' +\n\t\t\t\t'won\\'t be serialized because of JSON.stringify error - ' + error.message );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Assign and return a temporal unique id for an object\n\t * especially which doesn't have .uuid\n\t * @param {Object} object\n\t * @return {Integer}\n\t */\n\tgetUID( object ) {\n\n\t\tif ( ! this.uids.has( object ) ) this.uids.set( object, this.uid ++ );\n\n\t\treturn this.uids.get( object );\n\n\t}\n\n\t/**\n\t * Checks if normal attribute values are normalized.\n\t *\n\t * @param {BufferAttribute} normal\n\t * @returns {Boolean}\n\t */\n\tisNormalizedNormalAttribute( normal ) {\n\n\t\tconst cache = this.cache;\n\n\t\tif ( cache.attributesNormalized.has( normal ) ) return false;\n\n\t\tconst v = new Vector3();\n\n\t\tfor ( let i = 0, il = normal.count; i < il; i ++ ) {\n\n\t\t\t// 0.0005 is from glTF-validator\n\t\t\tif ( Math.abs( v.fromBufferAttribute( normal, i ).length() - 1.0 ) > 0.0005 ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\t/**\n\t * Creates normalized normal buffer attribute.\n\t *\n\t * @param {BufferAttribute} normal\n\t * @returns {BufferAttribute}\n\t *\n\t */\n\tcreateNormalizedNormalAttribute( normal ) {\n\n\t\tconst cache = this.cache;\n\n\t\tif ( cache.attributesNormalized.has( normal ) )\treturn cache.attributesNormalized.get( normal );\n\n\t\tconst attribute = normal.clone();\n\t\tconst v = new Vector3();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tv.fromBufferAttribute( attribute, i );\n\n\t\t\tif ( v.x === 0 && v.y === 0 && v.z === 0 ) {\n\n\t\t\t\t// if values can't be normalized set (1, 0, 0)\n\t\t\t\tv.setX( 1.0 );\n\n\t\t\t} else {\n\n\t\t\t\tv.normalize();\n\n\t\t\t}\n\n\t\t\tattribute.setXYZ( i, v.x, v.y, v.z );\n\n\t\t}\n\n\t\tcache.attributesNormalized.set( normal, attribute );\n\n\t\treturn attribute;\n\n\t}\n\n\t/**\n\t * Applies a texture transform, if present, to the map definition. Requires\n\t * the KHR_texture_transform extension.\n\t *\n\t * @param {Object} mapDef\n\t * @param {THREE.Texture} texture\n\t */\n\tapplyTextureTransform( mapDef, texture ) {\n\n\t\tlet didTransform = false;\n\t\tconst transformDef = {};\n\n\t\tif ( texture.offset.x !== 0 || texture.offset.y !== 0 ) {\n\n\t\t\ttransformDef.offset = texture.offset.toArray();\n\t\t\tdidTransform = true;\n\n\t\t}\n\n\t\tif ( texture.rotation !== 0 ) {\n\n\t\t\ttransformDef.rotation = texture.rotation;\n\t\t\tdidTransform = true;\n\n\t\t}\n\n\t\tif ( texture.repeat.x !== 1 || texture.repeat.y !== 1 ) {\n\n\t\t\ttransformDef.scale = texture.repeat.toArray();\n\t\t\tdidTransform = true;\n\n\t\t}\n\n\t\tif ( didTransform ) {\n\n\t\t\tmapDef.extensions = mapDef.extensions || {};\n\t\t\tmapDef.extensions[ 'KHR_texture_transform' ] = transformDef;\n\t\t\tthis.extensionsUsed[ 'KHR_texture_transform' ] = true;\n\n\t\t}\n\n\t}\n\n\tbuildMetalRoughTexture( metalnessMap, roughnessMap ) {\n\n\t\tif ( metalnessMap === roughnessMap ) return metalnessMap;\n\n\t\tconsole.warn( 'THREE.GLTFExporter: Merged metalnessMap and roughnessMap textures.' );\n\n\t\tconst metalness = metalnessMap?.image;\n\t\tconst roughness = roughnessMap?.image;\n\n\t\tconst width = Math.max( metalness?.width || 0, roughness?.width || 0 );\n\t\tconst height = Math.max( metalness?.height || 0, roughness?.height || 0 );\n\n\t\tconst canvas = document.createElement( 'canvas' );\n\t\tcanvas.width = width;\n\t\tcanvas.height = height;\n\n\t\tconst context = canvas.getContext( '2d' );\n\t\tcontext.fillStyle = '#00ffff';\n\t\tcontext.fillRect( 0, 0, width, height );\n\n\t\tconst composite = context.getImageData( 0, 0, width, height );\n\n\t\tif ( metalness ) {\n\n\t\t\tcontext.drawImage( metalness, 0, 0, width, height );\n\n\t\t\tconst data = context.getImageData( 0, 0, width, height ).data;\n\n\t\t\tfor ( let i = 2; i < data.length; i += 4 ) {\n\n\t\t\t\tcomposite.data[ i ] = data[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( roughness ) {\n\n\t\t\tcontext.drawImage( roughness, 0, 0, width, height );\n\n\t\t\tconst data = context.getImageData( 0, 0, width, height ).data;\n\n\t\t\tfor ( let i = 1; i < data.length; i += 4 ) {\n\n\t\t\t\tcomposite.data[ i ] = data[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tcontext.putImageData( composite, 0, 0 );\n\n\t\t//\n\n\t\tconst reference = metalnessMap || roughnessMap;\n\n\t\tconst texture = reference.clone();\n\n\t\ttexture.source = new Source( canvas );\n\n\t\treturn texture;\n\n\t}\n\n\t/**\n\t * Process a buffer to append to the default one.\n\t * @param {ArrayBuffer} buffer\n\t * @return {Integer}\n\t */\n\tprocessBuffer( buffer ) {\n\n\t\tconst json = this.json;\n\t\tconst buffers = this.buffers;\n\n\t\tif ( ! json.buffers ) json.buffers = [ { byteLength: 0 } ];\n\n\t\t// All buffers are merged before export.\n\t\tbuffers.push( buffer );\n\n\t\treturn 0;\n\n\t}\n\n\t/**\n\t * Process and generate a BufferView\n\t * @param {BufferAttribute} attribute\n\t * @param {number} componentType\n\t * @param {number} start\n\t * @param {number} count\n\t * @param {number} target (Optional) Target usage of the BufferView\n\t * @return {Object}\n\t */\n\tprocessBufferView( attribute, componentType, start, count, target ) {\n\n\t\tconst json = this.json;\n\n\t\tif ( ! json.bufferViews ) json.bufferViews = [];\n\n\t\t// Create a new dataview and dump the attribute's array into it\n\n\t\tlet componentSize;\n\n\t\tif ( componentType === WEBGL_CONSTANTS.UNSIGNED_BYTE ) {\n\n\t\t\tcomponentSize = 1;\n\n\t\t} else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_SHORT ) {\n\n\t\t\tcomponentSize = 2;\n\n\t\t} else {\n\n\t\t\tcomponentSize = 4;\n\n\t\t}\n\n\t\tconst byteLength = getPaddedBufferSize( count * attribute.itemSize * componentSize );\n\t\tconst dataView = new DataView( new ArrayBuffer( byteLength ) );\n\t\tlet offset = 0;\n\n\t\tfor ( let i = start; i < start + count; i ++ ) {\n\n\t\t\tfor ( let a = 0; a < attribute.itemSize; a ++ ) {\n\n\t\t\t\tlet value;\n\n\t\t\t\tif ( attribute.itemSize > 4 ) {\n\n\t\t\t\t\t // no support for interleaved data for itemSize > 4\n\n\t\t\t\t\tvalue = attribute.array[ i * attribute.itemSize + a ];\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( a === 0 ) value = attribute.getX( i );\n\t\t\t\t\telse if ( a === 1 ) value = attribute.getY( i );\n\t\t\t\t\telse if ( a === 2 ) value = attribute.getZ( i );\n\t\t\t\t\telse if ( a === 3 ) value = attribute.getW( i );\n\n\t\t\t\t}\n\n\t\t\t\tif ( componentType === WEBGL_CONSTANTS.FLOAT ) {\n\n\t\t\t\t\tdataView.setFloat32( offset, value, true );\n\n\t\t\t\t} else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_INT ) {\n\n\t\t\t\t\tdataView.setUint32( offset, value, true );\n\n\t\t\t\t} else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_SHORT ) {\n\n\t\t\t\t\tdataView.setUint16( offset, value, true );\n\n\t\t\t\t} else if ( componentType === WEBGL_CONSTANTS.UNSIGNED_BYTE ) {\n\n\t\t\t\t\tdataView.setUint8( offset, value );\n\n\t\t\t\t}\n\n\t\t\t\toffset += componentSize;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bufferViewDef = {\n\n\t\t\tbuffer: this.processBuffer( dataView.buffer ),\n\t\t\tbyteOffset: this.byteOffset,\n\t\t\tbyteLength: byteLength\n\n\t\t};\n\n\t\tif ( target !== undefined ) bufferViewDef.target = target;\n\n\t\tif ( target === WEBGL_CONSTANTS.ARRAY_BUFFER ) {\n\n\t\t\t// Only define byteStride for vertex attributes.\n\t\t\tbufferViewDef.byteStride = attribute.itemSize * componentSize;\n\n\t\t}\n\n\t\tthis.byteOffset += byteLength;\n\n\t\tjson.bufferViews.push( bufferViewDef );\n\n\t\t// @TODO Merge bufferViews where possible.\n\t\tconst output = {\n\n\t\t\tid: json.bufferViews.length - 1,\n\t\t\tbyteLength: 0\n\n\t\t};\n\n\t\treturn output;\n\n\t}\n\n\t/**\n\t * Process and generate a BufferView from an image Blob.\n\t * @param {Blob} blob\n\t * @return {Promise}\n\t */\n\tprocessBufferViewImage( blob ) {\n\n\t\tconst writer = this;\n\t\tconst json = writer.json;\n\n\t\tif ( ! json.bufferViews ) json.bufferViews = [];\n\n\t\treturn new Promise( function ( resolve ) {\n\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( blob );\n\t\t\treader.onloadend = function () {\n\n\t\t\t\tconst buffer = getPaddedArrayBuffer( reader.result );\n\n\t\t\t\tconst bufferViewDef = {\n\t\t\t\t\tbuffer: writer.processBuffer( buffer ),\n\t\t\t\t\tbyteOffset: writer.byteOffset,\n\t\t\t\t\tbyteLength: buffer.byteLength\n\t\t\t\t};\n\n\t\t\t\twriter.byteOffset += buffer.byteLength;\n\t\t\t\tresolve( json.bufferViews.push( bufferViewDef ) - 1 );\n\n\t\t\t};\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Process attribute to generate an accessor\n\t * @param {BufferAttribute} attribute Attribute to process\n\t * @param {THREE.BufferGeometry} geometry (Optional) Geometry used for truncated draw range\n\t * @param {Integer} start (Optional)\n\t * @param {Integer} count (Optional)\n\t * @return {Integer|null} Index of the processed accessor on the \"accessors\" array\n\t */\n\tprocessAccessor( attribute, geometry, start, count ) {\n\n\t\tconst options = this.options;\n\t\tconst json = this.json;\n\n\t\tconst types = {\n\n\t\t\t1: 'SCALAR',\n\t\t\t2: 'VEC2',\n\t\t\t3: 'VEC3',\n\t\t\t4: 'VEC4',\n\t\t\t16: 'MAT4'\n\n\t\t};\n\n\t\tlet componentType;\n\n\t\t// Detect the component type of the attribute array (float, uint or ushort)\n\t\tif ( attribute.array.constructor === Float32Array ) {\n\n\t\t\tcomponentType = WEBGL_CONSTANTS.FLOAT;\n\n\t\t} else if ( attribute.array.constructor === Uint32Array ) {\n\n\t\t\tcomponentType = WEBGL_CONSTANTS.UNSIGNED_INT;\n\n\t\t} else if ( attribute.array.constructor === Uint16Array ) {\n\n\t\t\tcomponentType = WEBGL_CONSTANTS.UNSIGNED_SHORT;\n\n\t\t} else if ( attribute.array.constructor === Uint8Array ) {\n\n\t\t\tcomponentType = WEBGL_CONSTANTS.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.GLTFExporter: Unsupported bufferAttribute component type.' );\n\n\t\t}\n\n\t\tif ( start === undefined ) start = 0;\n\t\tif ( count === undefined ) count = attribute.count;\n\n\t\t// @TODO Indexed buffer geometry with drawRange not supported yet\n\t\tif ( options.truncateDrawRange && geometry !== undefined && geometry.index === null ) {\n\n\t\t\tconst end = start + count;\n\t\t\tconst end2 = geometry.drawRange.count === Infinity\n\t\t\t\t? attribute.count\n\t\t\t\t: geometry.drawRange.start + geometry.drawRange.count;\n\n\t\t\tstart = Math.max( start, geometry.drawRange.start );\n\t\t\tcount = Math.min( end, end2 ) - start;\n\n\t\t\tif ( count < 0 ) count = 0;\n\n\t\t}\n\n\t\t// Skip creating an accessor if the attribute doesn't have data to export\n\t\tif ( count === 0 ) return null;\n\n\t\tconst minMax = getMinMax( attribute, start, count );\n\t\tlet bufferViewTarget;\n\n\t\t// If geometry isn't provided, don't infer the target usage of the bufferView. For\n\t\t// animation samplers, target must not be set.\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tbufferViewTarget = attribute === geometry.index ? WEBGL_CONSTANTS.ELEMENT_ARRAY_BUFFER : WEBGL_CONSTANTS.ARRAY_BUFFER;\n\n\t\t}\n\n\t\tconst bufferView = this.processBufferView( attribute, componentType, start, count, bufferViewTarget );\n\n\t\tconst accessorDef = {\n\n\t\t\tbufferView: bufferView.id,\n\t\t\tbyteOffset: bufferView.byteOffset,\n\t\t\tcomponentType: componentType,\n\t\t\tcount: count,\n\t\t\tmax: minMax.max,\n\t\t\tmin: minMax.min,\n\t\t\ttype: types[ attribute.itemSize ]\n\n\t\t};\n\n\t\tif ( attribute.normalized === true ) accessorDef.normalized = true;\n\t\tif ( ! json.accessors ) json.accessors = [];\n\n\t\treturn json.accessors.push( accessorDef ) - 1;\n\n\t}\n\n\t/**\n\t * Process image\n\t * @param {Image} image to process\n\t * @param {Integer} format of the image (RGBAFormat)\n\t * @param {Boolean} flipY before writing out the image\n\t * @param {String} mimeType export format\n\t * @return {Integer} Index of the processed texture in the \"images\" array\n\t */\n\tprocessImage( image, format, flipY, mimeType = 'image/png' ) {\n\n\t\tconst writer = this;\n\t\tconst cache = writer.cache;\n\t\tconst json = writer.json;\n\t\tconst options = writer.options;\n\t\tconst pending = writer.pending;\n\n\t\tif ( ! cache.images.has( image ) ) cache.images.set( image, {} );\n\n\t\tconst cachedImages = cache.images.get( image );\n\n\t\tconst key = mimeType + ':flipY/' + flipY.toString();\n\n\t\tif ( cachedImages[ key ] !== undefined ) return cachedImages[ key ];\n\n\t\tif ( ! json.images ) json.images = [];\n\n\t\tconst imageDef = { mimeType: mimeType };\n\n\t\tif ( options.embedImages ) {\n\n\t\t\tconst canvas = cachedCanvas = cachedCanvas || document.createElement( 'canvas' );\n\n\t\t\tcanvas.width = Math.min( image.width, options.maxTextureSize );\n\t\t\tcanvas.height = Math.min( image.height, options.maxTextureSize );\n\n\t\t\tconst ctx = canvas.getContext( '2d' );\n\n\t\t\tif ( flipY === true ) {\n\n\t\t\t\tctx.translate( 0, canvas.height );\n\t\t\t\tctx.scale( 1, - 1 );\n\n\t\t\t}\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\t\tctx.drawImage( image, 0, 0, canvas.width, canvas.height );\n\n\t\t\t} else {\n\n\t\t\t\tif ( format !== RGBAFormat ) {\n\n\t\t\t\t\tconsole.error( 'GLTFExporter: Only RGBAFormat is supported.' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( image.width > options.maxTextureSize || image.height > options.maxTextureSize ) {\n\n\t\t\t\t\tconsole.warn( 'GLTFExporter: Image size is bigger than maxTextureSize', image );\n\n\t\t\t\t}\n\n\t\t\t\tconst data = new Uint8ClampedArray( image.height * image.width * 4 );\n\n\t\t\t\tfor ( let i = 0; i < data.length; i += 4 ) {\n\n\t\t\t\t\tdata[ i + 0 ] = image.data[ i + 0 ];\n\t\t\t\t\tdata[ i + 1 ] = image.data[ i + 1 ];\n\t\t\t\t\tdata[ i + 2 ] = image.data[ i + 2 ];\n\t\t\t\t\tdata[ i + 3 ] = image.data[ i + 3 ];\n\n\t\t\t\t}\n\n\t\t\t\tctx.putImageData( new ImageData( data, image.width, image.height ), 0, 0 );\n\n\t\t\t}\n\n\t\t\tif ( options.binary === true ) {\n\n\t\t\t\tpending.push( new Promise( function ( resolve ) {\n\n\t\t\t\t\tcanvas.toBlob( function ( blob ) {\n\n\t\t\t\t\t\twriter.processBufferViewImage( blob ).then( function ( bufferViewIndex ) {\n\n\t\t\t\t\t\t\timageDef.bufferView = bufferViewIndex;\n\t\t\t\t\t\t\tresolve();\n\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t}, mimeType );\n\n\t\t\t\t} ) );\n\n\t\t\t} else {\n\n\t\t\t\timageDef.uri = canvas.toDataURL( mimeType );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\timageDef.uri = image.src;\n\n\t\t}\n\n\t\tconst index = json.images.push( imageDef ) - 1;\n\t\tcachedImages[ key ] = index;\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Process sampler\n\t * @param {Texture} map Texture to process\n\t * @return {Integer} Index of the processed texture in the \"samplers\" array\n\t */\n\tprocessSampler( map ) {\n\n\t\tconst json = this.json;\n\n\t\tif ( ! json.samplers ) json.samplers = [];\n\n\t\tconst samplerDef = {\n\t\t\tmagFilter: THREE_TO_WEBGL[ map.magFilter ],\n\t\t\tminFilter: THREE_TO_WEBGL[ map.minFilter ],\n\t\t\twrapS: THREE_TO_WEBGL[ map.wrapS ],\n\t\t\twrapT: THREE_TO_WEBGL[ map.wrapT ]\n\t\t};\n\n\t\treturn json.samplers.push( samplerDef ) - 1;\n\n\t}\n\n\t/**\n\t * Process texture\n\t * @param {Texture} map Map to process\n\t * @return {Integer} Index of the processed texture in the \"textures\" array\n\t */\n\tprocessTexture( map ) {\n\n\t\tconst cache = this.cache;\n\t\tconst json = this.json;\n\n\t\tif ( cache.textures.has( map ) ) return cache.textures.get( map );\n\n\t\tif ( ! json.textures ) json.textures = [];\n\n\t\tlet mimeType = map.userData.mimeType;\n\n\t\tif ( mimeType === 'image/webp' ) mimeType = 'image/png';\n\n\t\tconst textureDef = {\n\t\t\tsampler: this.processSampler( map ),\n\t\t\tsource: this.processImage( map.image, map.format, map.flipY, mimeType )\n\t\t};\n\n\t\tif ( map.name ) textureDef.name = map.name;\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.writeTexture && ext.writeTexture( map, textureDef );\n\n\t\t} );\n\n\t\tconst index = json.textures.push( textureDef ) - 1;\n\t\tcache.textures.set( map, index );\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Process material\n\t * @param {THREE.Material} material Material to process\n\t * @return {Integer|null} Index of the processed material in the \"materials\" array\n\t */\n\tprocessMaterial( material ) {\n\n\t\tconst cache = this.cache;\n\t\tconst json = this.json;\n\n\t\tif ( cache.materials.has( material ) ) return cache.materials.get( material );\n\n\t\tif ( material.isShaderMaterial ) {\n\n\t\t\tconsole.warn( 'GLTFExporter: THREE.ShaderMaterial not supported.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tif ( ! json.materials ) json.materials = [];\n\n\t\t// @QUESTION Should we avoid including any attribute that has the default value?\n\t\tconst materialDef = {\tpbrMetallicRoughness: {} };\n\n\t\tif ( material.isMeshStandardMaterial !== true && material.isMeshBasicMaterial !== true ) {\n\n\t\t\tconsole.warn( 'GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.' );\n\n\t\t}\n\n\t\t// pbrMetallicRoughness.baseColorFactor\n\t\tconst color = material.color.toArray().concat( [ material.opacity ] );\n\n\t\tif ( ! equalArray( color, [ 1, 1, 1, 1 ] ) ) {\n\n\t\t\tmaterialDef.pbrMetallicRoughness.baseColorFactor = color;\n\n\t\t}\n\n\t\tif ( material.isMeshStandardMaterial ) {\n\n\t\t\tmaterialDef.pbrMetallicRoughness.metallicFactor = material.metalness;\n\t\t\tmaterialDef.pbrMetallicRoughness.roughnessFactor = material.roughness;\n\n\t\t} else {\n\n\t\t\tmaterialDef.pbrMetallicRoughness.metallicFactor = 0.5;\n\t\t\tmaterialDef.pbrMetallicRoughness.roughnessFactor = 0.5;\n\n\t\t}\n\n\t\t// pbrMetallicRoughness.metallicRoughnessTexture\n\t\tif ( material.metalnessMap || material.roughnessMap ) {\n\n\t\t\tconst metalRoughTexture = this.buildMetalRoughTexture( material.metalnessMap, material.roughnessMap );\n\n\t\t\tconst metalRoughMapDef = { index: this.processTexture( metalRoughTexture ) };\n\t\t\tthis.applyTextureTransform( metalRoughMapDef, metalRoughTexture );\n\t\t\tmaterialDef.pbrMetallicRoughness.metallicRoughnessTexture = metalRoughMapDef;\n\n\t\t}\n\n\t\t// pbrMetallicRoughness.baseColorTexture or pbrSpecularGlossiness diffuseTexture\n\t\tif ( material.map ) {\n\n\t\t\tconst baseColorMapDef = { index: this.processTexture( material.map ) };\n\t\t\tthis.applyTextureTransform( baseColorMapDef, material.map );\n\t\t\tmaterialDef.pbrMetallicRoughness.baseColorTexture = baseColorMapDef;\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\t// note: emissive components are limited to stay within the 0 - 1 range to accommodate glTF spec. see #21849 and #22000.\n\t\t\tconst emissive = material.emissive.clone().multiplyScalar( material.emissiveIntensity );\n\t\t\tconst maxEmissiveComponent = Math.max( emissive.r, emissive.g, emissive.b );\n\n\t\t\tif ( maxEmissiveComponent > 1 ) {\n\n\t\t\t\temissive.multiplyScalar( 1 / maxEmissiveComponent );\n\n\t\t\t\tconsole.warn( 'THREE.GLTFExporter: Some emissive components exceed 1; emissive has been limited' );\n\n\t\t\t}\n\n\t\t\tif ( maxEmissiveComponent > 0 ) {\n\n\t\t\t\tmaterialDef.emissiveFactor = emissive.toArray();\n\n\t\t\t}\n\n\t\t\t// emissiveTexture\n\t\t\tif ( material.emissiveMap ) {\n\n\t\t\t\tconst emissiveMapDef = { index: this.processTexture( material.emissiveMap ) };\n\t\t\t\tthis.applyTextureTransform( emissiveMapDef, material.emissiveMap );\n\t\t\t\tmaterialDef.emissiveTexture = emissiveMapDef;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// normalTexture\n\t\tif ( material.normalMap ) {\n\n\t\t\tconst normalMapDef = { index: this.processTexture( material.normalMap ) };\n\n\t\t\tif ( material.normalScale && material.normalScale.x !== 1 ) {\n\n\t\t\t\t// glTF normal scale is univariate. Ignore `y`, which may be flipped.\n\t\t\t\t// Context: https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995\n\t\t\t\tnormalMapDef.scale = material.normalScale.x;\n\n\t\t\t}\n\n\t\t\tthis.applyTextureTransform( normalMapDef, material.normalMap );\n\t\t\tmaterialDef.normalTexture = normalMapDef;\n\n\t\t}\n\n\t\t// occlusionTexture\n\t\tif ( material.aoMap ) {\n\n\t\t\tconst occlusionMapDef = {\n\t\t\t\tindex: this.processTexture( material.aoMap ),\n\t\t\t\ttexCoord: 1\n\t\t\t};\n\n\t\t\tif ( material.aoMapIntensity !== 1.0 ) {\n\n\t\t\t\tocclusionMapDef.strength = material.aoMapIntensity;\n\n\t\t\t}\n\n\t\t\tthis.applyTextureTransform( occlusionMapDef, material.aoMap );\n\t\t\tmaterialDef.occlusionTexture = occlusionMapDef;\n\n\t\t}\n\n\t\t// alphaMode\n\t\tif ( material.transparent ) {\n\n\t\t\tmaterialDef.alphaMode = 'BLEND';\n\n\t\t} else {\n\n\t\t\tif ( material.alphaTest > 0.0 ) {\n\n\t\t\t\tmaterialDef.alphaMode = 'MASK';\n\t\t\t\tmaterialDef.alphaCutoff = material.alphaTest;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// doubleSided\n\t\tif ( material.side === DoubleSide ) materialDef.doubleSided = true;\n\t\tif ( material.name !== '' ) materialDef.name = material.name;\n\n\t\tthis.serializeUserData( material, materialDef );\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.writeMaterial && ext.writeMaterial( material, materialDef );\n\n\t\t} );\n\n\t\tconst index = json.materials.push( materialDef ) - 1;\n\t\tcache.materials.set( material, index );\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Process mesh\n\t * @param {THREE.Mesh} mesh Mesh to process\n\t * @return {Integer|null} Index of the processed mesh in the \"meshes\" array\n\t */\n\tprocessMesh( mesh ) {\n\n\t\tconst cache = this.cache;\n\t\tconst json = this.json;\n\n\t\tconst meshCacheKeyParts = [ mesh.geometry.uuid ];\n\n\t\tif ( Array.isArray( mesh.material ) ) {\n\n\t\t\tfor ( let i = 0, l = mesh.material.length; i < l; i ++ ) {\n\n\t\t\t\tmeshCacheKeyParts.push( mesh.material[ i ].uuid\t);\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tmeshCacheKeyParts.push( mesh.material.uuid );\n\n\t\t}\n\n\t\tconst meshCacheKey = meshCacheKeyParts.join( ':' );\n\n\t\tif ( cache.meshes.has( meshCacheKey ) ) return cache.meshes.get( meshCacheKey );\n\n\t\tconst geometry = mesh.geometry;\n\t\tlet mode;\n\n\t\t// Use the correct mode\n\t\tif ( mesh.isLineSegments ) {\n\n\t\t\tmode = WEBGL_CONSTANTS.LINES;\n\n\t\t} else if ( mesh.isLineLoop ) {\n\n\t\t\tmode = WEBGL_CONSTANTS.LINE_LOOP;\n\n\t\t} else if ( mesh.isLine ) {\n\n\t\t\tmode = WEBGL_CONSTANTS.LINE_STRIP;\n\n\t\t} else if ( mesh.isPoints ) {\n\n\t\t\tmode = WEBGL_CONSTANTS.POINTS;\n\n\t\t} else {\n\n\t\t\tmode = mesh.material.wireframe ? WEBGL_CONSTANTS.LINES : WEBGL_CONSTANTS.TRIANGLES;\n\n\t\t}\n\n\t\tif ( geometry.isBufferGeometry !== true ) {\n\n\t\t\tthrow new Error( 'THREE.GLTFExporter: Geometry is not of type THREE.BufferGeometry.' );\n\n\t\t}\n\n\t\tconst meshDef = {};\n\t\tconst attributes = {};\n\t\tconst primitives = [];\n\t\tconst targets = [];\n\n\t\t// Conversion between attributes names in threejs and gltf spec\n\t\tconst nameConversion = {\n\t\t\tuv: 'TEXCOORD_0',\n\t\t\tuv2: 'TEXCOORD_1',\n\t\t\tcolor: 'COLOR_0',\n\t\t\tskinWeight: 'WEIGHTS_0',\n\t\t\tskinIndex: 'JOINTS_0'\n\t\t};\n\n\t\tconst originalNormal = geometry.getAttribute( 'normal' );\n\n\t\tif ( originalNormal !== undefined && ! this.isNormalizedNormalAttribute( originalNormal ) ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one.' );\n\n\t\t\tgeometry.setAttribute( 'normal', this.createNormalizedNormalAttribute( originalNormal ) );\n\n\t\t}\n\n\t\t// @QUESTION Detect if .vertexColors = true?\n\t\t// For every attribute create an accessor\n\t\tlet modifiedAttribute = null;\n\n\t\tfor ( let attributeName in geometry.attributes ) {\n\n\t\t\t// Ignore morph target attributes, which are exported later.\n\t\t\tif ( attributeName.slice( 0, 5 ) === 'morph' ) continue;\n\n\t\t\tconst attribute = geometry.attributes[ attributeName ];\n\t\t\tattributeName = nameConversion[ attributeName ] || attributeName.toUpperCase();\n\n\t\t\t// Prefix all geometry attributes except the ones specifically\n\t\t\t// listed in the spec; non-spec attributes are considered custom.\n\t\t\tconst validVertexAttributes =\n\t\t\t\t\t/^(POSITION|NORMAL|TANGENT|TEXCOORD_\\d+|COLOR_\\d+|JOINTS_\\d+|WEIGHTS_\\d+)$/;\n\n\t\t\tif ( ! validVertexAttributes.test( attributeName ) ) attributeName = '_' + attributeName;\n\n\t\t\tif ( cache.attributes.has( this.getUID( attribute ) ) ) {\n\n\t\t\t\tattributes[ attributeName ] = cache.attributes.get( this.getUID( attribute ) );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// JOINTS_0 must be UNSIGNED_BYTE or UNSIGNED_SHORT.\n\t\t\tmodifiedAttribute = null;\n\t\t\tconst array = attribute.array;\n\n\t\t\tif ( attributeName === 'JOINTS_0' &&\n\t\t\t\t! ( array instanceof Uint16Array ) &&\n\t\t\t\t! ( array instanceof Uint8Array ) ) {\n\n\t\t\t\tconsole.warn( 'GLTFExporter: Attribute \"skinIndex\" converted to type UNSIGNED_SHORT.' );\n\t\t\t\tmodifiedAttribute = new BufferAttribute( new Uint16Array( array ), attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tconst accessor = this.processAccessor( modifiedAttribute || attribute, geometry );\n\n\t\t\tif ( accessor !== null ) {\n\n\t\t\t\tattributes[ attributeName ] = accessor;\n\t\t\t\tcache.attributes.set( this.getUID( attribute ), accessor );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( originalNormal !== undefined ) geometry.setAttribute( 'normal', originalNormal );\n\n\t\t// Skip if no exportable attributes found\n\t\tif ( Object.keys( attributes ).length === 0 ) return null;\n\n\t\t// Morph targets\n\t\tif ( mesh.morphTargetInfluences !== undefined && mesh.morphTargetInfluences.length > 0 ) {\n\n\t\t\tconst weights = [];\n\t\t\tconst targetNames = [];\n\t\t\tconst reverseDictionary = {};\n\n\t\t\tif ( mesh.morphTargetDictionary !== undefined ) {\n\n\t\t\t\tfor ( const key in mesh.morphTargetDictionary ) {\n\n\t\t\t\t\treverseDictionary[ mesh.morphTargetDictionary[ key ] ] = key;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0; i < mesh.morphTargetInfluences.length; ++ i ) {\n\n\t\t\t\tconst target = {};\n\t\t\t\tlet warned = false;\n\n\t\t\t\tfor ( const attributeName in geometry.morphAttributes ) {\n\n\t\t\t\t\t// glTF 2.0 morph supports only POSITION/NORMAL/TANGENT.\n\t\t\t\t\t// Three.js doesn't support TANGENT yet.\n\n\t\t\t\t\tif ( attributeName !== 'position' && attributeName !== 'normal' ) {\n\n\t\t\t\t\t\tif ( ! warned ) {\n\n\t\t\t\t\t\t\tconsole.warn( 'GLTFExporter: Only POSITION and NORMAL morph are supported.' );\n\t\t\t\t\t\t\twarned = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst attribute = geometry.morphAttributes[ attributeName ][ i ];\n\t\t\t\t\tconst gltfAttributeName = attributeName.toUpperCase();\n\n\t\t\t\t\t// Three.js morph attribute has absolute values while the one of glTF has relative values.\n\t\t\t\t\t//\n\t\t\t\t\t// glTF 2.0 Specification:\n\t\t\t\t\t// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#morph-targets\n\n\t\t\t\t\tconst baseAttribute = geometry.attributes[ attributeName ];\n\n\t\t\t\t\tif ( cache.attributes.has( this.getUID( attribute ) ) ) {\n\n\t\t\t\t\t\ttarget[ gltfAttributeName ] = cache.attributes.get( this.getUID( attribute ) );\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Clones attribute not to override\n\t\t\t\t\tconst relativeAttribute = attribute.clone();\n\n\t\t\t\t\tif ( ! geometry.morphTargetsRelative ) {\n\n\t\t\t\t\t\tfor ( let j = 0, jl = attribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t\trelativeAttribute.setXYZ(\n\t\t\t\t\t\t\t\tj,\n\t\t\t\t\t\t\t\tattribute.getX( j ) - baseAttribute.getX( j ),\n\t\t\t\t\t\t\t\tattribute.getY( j ) - baseAttribute.getY( j ),\n\t\t\t\t\t\t\t\tattribute.getZ( j ) - baseAttribute.getZ( j )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttarget[ gltfAttributeName ] = this.processAccessor( relativeAttribute, geometry );\n\t\t\t\t\tcache.attributes.set( this.getUID( baseAttribute ), target[ gltfAttributeName ] );\n\n\t\t\t\t}\n\n\t\t\t\ttargets.push( target );\n\n\t\t\t\tweights.push( mesh.morphTargetInfluences[ i ] );\n\n\t\t\t\tif ( mesh.morphTargetDictionary !== undefined ) targetNames.push( reverseDictionary[ i ] );\n\n\t\t\t}\n\n\t\t\tmeshDef.weights = weights;\n\n\t\t\tif ( targetNames.length > 0 ) {\n\n\t\t\t\tmeshDef.extras = {};\n\t\t\t\tmeshDef.extras.targetNames = targetNames;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst isMultiMaterial = Array.isArray( mesh.material );\n\n\t\tif ( isMultiMaterial && geometry.groups.length === 0 ) return null;\n\n\t\tconst materials = isMultiMaterial ? mesh.material : [ mesh.material ];\n\t\tconst groups = isMultiMaterial ? geometry.groups : [ { materialIndex: 0, start: undefined, count: undefined } ];\n\n\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\tconst primitive = {\n\t\t\t\tmode: mode,\n\t\t\t\tattributes: attributes,\n\t\t\t};\n\n\t\t\tthis.serializeUserData( geometry, primitive );\n\n\t\t\tif ( targets.length > 0 ) primitive.targets = targets;\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\tlet cacheKey = this.getUID( geometry.index );\n\n\t\t\t\tif ( groups[ i ].start !== undefined || groups[ i ].count !== undefined ) {\n\n\t\t\t\t\tcacheKey += ':' + groups[ i ].start + ':' + groups[ i ].count;\n\n\t\t\t\t}\n\n\t\t\t\tif ( cache.attributes.has( cacheKey ) ) {\n\n\t\t\t\t\tprimitive.indices = cache.attributes.get( cacheKey );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tprimitive.indices = this.processAccessor( geometry.index, geometry, groups[ i ].start, groups[ i ].count );\n\t\t\t\t\tcache.attributes.set( cacheKey, primitive.indices );\n\n\t\t\t\t}\n\n\t\t\t\tif ( primitive.indices === null ) delete primitive.indices;\n\n\t\t\t}\n\n\t\t\tconst material = this.processMaterial( materials[ groups[ i ].materialIndex ] );\n\n\t\t\tif ( material !== null ) primitive.material = material;\n\n\t\t\tprimitives.push( primitive );\n\n\t\t}\n\n\t\tmeshDef.primitives = primitives;\n\n\t\tif ( ! json.meshes ) json.meshes = [];\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.writeMesh && ext.writeMesh( mesh, meshDef );\n\n\t\t} );\n\n\t\tconst index = json.meshes.push( meshDef ) - 1;\n\t\tcache.meshes.set( meshCacheKey, index );\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Process camera\n\t * @param {THREE.Camera} camera Camera to process\n\t * @return {Integer} Index of the processed mesh in the \"camera\" array\n\t */\n\tprocessCamera( camera ) {\n\n\t\tconst json = this.json;\n\n\t\tif ( ! json.cameras ) json.cameras = [];\n\n\t\tconst isOrtho = camera.isOrthographicCamera;\n\n\t\tconst cameraDef = {\n\t\t\ttype: isOrtho ? 'orthographic' : 'perspective'\n\t\t};\n\n\t\tif ( isOrtho ) {\n\n\t\t\tcameraDef.orthographic = {\n\t\t\t\txmag: camera.right * 2,\n\t\t\t\tymag: camera.top * 2,\n\t\t\t\tzfar: camera.far <= 0 ? 0.001 : camera.far,\n\t\t\t\tznear: camera.near < 0 ? 0 : camera.near\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tcameraDef.perspective = {\n\t\t\t\taspectRatio: camera.aspect,\n\t\t\t\tyfov: MathUtils.degToRad( camera.fov ),\n\t\t\t\tzfar: camera.far <= 0 ? 0.001 : camera.far,\n\t\t\t\tznear: camera.near < 0 ? 0 : camera.near\n\t\t\t};\n\n\t\t}\n\n\t\t// Question: Is saving \"type\" as name intentional?\n\t\tif ( camera.name !== '' ) cameraDef.name = camera.type;\n\n\t\treturn json.cameras.push( cameraDef ) - 1;\n\n\t}\n\n\t/**\n\t * Creates glTF animation entry from AnimationClip object.\n\t *\n\t * Status:\n\t * - Only properties listed in PATH_PROPERTIES may be animated.\n\t *\n\t * @param {THREE.AnimationClip} clip\n\t * @param {THREE.Object3D} root\n\t * @return {number|null}\n\t */\n\tprocessAnimation( clip, root ) {\n\n\t\tconst json = this.json;\n\t\tconst nodeMap = this.nodeMap;\n\n\t\tif ( ! json.animations ) json.animations = [];\n\n\t\tclip = GLTFExporter.Utils.mergeMorphTargetTracks( clip.clone(), root );\n\n\t\tconst tracks = clip.tracks;\n\t\tconst channels = [];\n\t\tconst samplers = [];\n\n\t\tfor ( let i = 0; i < tracks.length; ++ i ) {\n\n\t\t\tconst track = tracks[ i ];\n\t\t\tconst trackBinding = PropertyBinding.parseTrackName( track.name );\n\t\t\tlet trackNode = PropertyBinding.findNode( root, trackBinding.nodeName );\n\t\t\tconst trackProperty = PATH_PROPERTIES[ trackBinding.propertyName ];\n\n\t\t\tif ( trackBinding.objectName === 'bones' ) {\n\n\t\t\t\tif ( trackNode.isSkinnedMesh === true ) {\n\n\t\t\t\t\ttrackNode = trackNode.skeleton.getBoneByName( trackBinding.objectIndex );\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttrackNode = undefined;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ! trackNode || ! trackProperty ) {\n\n\t\t\t\tconsole.warn( 'THREE.GLTFExporter: Could not export animation track \"%s\".', track.name );\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t\tconst inputItemSize = 1;\n\t\t\tlet outputItemSize = track.values.length / track.times.length;\n\n\t\t\tif ( trackProperty === PATH_PROPERTIES.morphTargetInfluences ) {\n\n\t\t\t\toutputItemSize /= trackNode.morphTargetInfluences.length;\n\n\t\t\t}\n\n\t\t\tlet interpolation;\n\n\t\t\t// @TODO export CubicInterpolant(InterpolateSmooth) as CUBICSPLINE\n\n\t\t\t// Detecting glTF cubic spline interpolant by checking factory method's special property\n\t\t\t// GLTFCubicSplineInterpolant is a custom interpolant and track doesn't return\n\t\t\t// valid value from .getInterpolation().\n\t\t\tif ( track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline === true ) {\n\n\t\t\t\tinterpolation = 'CUBICSPLINE';\n\n\t\t\t\t// itemSize of CUBICSPLINE keyframe is 9\n\t\t\t\t// (VEC3 * 3: inTangent, splineVertex, and outTangent)\n\t\t\t\t// but needs to be stored as VEC3 so dividing by 3 here.\n\t\t\t\toutputItemSize /= 3;\n\n\t\t\t} else if ( track.getInterpolation() === InterpolateDiscrete ) {\n\n\t\t\t\tinterpolation = 'STEP';\n\n\t\t\t} else {\n\n\t\t\t\tinterpolation = 'LINEAR';\n\n\t\t\t}\n\n\t\t\tsamplers.push( {\n\t\t\t\tinput: this.processAccessor( new BufferAttribute( track.times, inputItemSize ) ),\n\t\t\t\toutput: this.processAccessor( new BufferAttribute( track.values, outputItemSize ) ),\n\t\t\t\tinterpolation: interpolation\n\t\t\t} );\n\n\t\t\tchannels.push( {\n\t\t\t\tsampler: samplers.length - 1,\n\t\t\t\ttarget: {\n\t\t\t\t\tnode: nodeMap.get( trackNode ),\n\t\t\t\t\tpath: trackProperty\n\t\t\t\t}\n\t\t\t} );\n\n\t\t}\n\n\t\tjson.animations.push( {\n\t\t\tname: clip.name || 'clip_' + json.animations.length,\n\t\t\tsamplers: samplers,\n\t\t\tchannels: channels\n\t\t} );\n\n\t\treturn json.animations.length - 1;\n\n\t}\n\n\t/**\n\t * @param {THREE.Object3D} object\n\t * @return {number|null}\n\t */\n\t processSkin( object ) {\n\n\t\tconst json = this.json;\n\t\tconst nodeMap = this.nodeMap;\n\n\t\tconst node = json.nodes[ nodeMap.get( object ) ];\n\n\t\tconst skeleton = object.skeleton;\n\n\t\tif ( skeleton === undefined ) return null;\n\n\t\tconst rootJoint = object.skeleton.bones[ 0 ];\n\n\t\tif ( rootJoint === undefined ) return null;\n\n\t\tconst joints = [];\n\t\tconst inverseBindMatrices = new Float32Array( skeleton.bones.length * 16 );\n\t\tconst temporaryBoneInverse = new Matrix4();\n\n\t\tfor ( let i = 0; i < skeleton.bones.length; ++ i ) {\n\n\t\t\tjoints.push( nodeMap.get( skeleton.bones[ i ] ) );\n\t\t\ttemporaryBoneInverse.copy( skeleton.boneInverses[ i ] );\n\t\t\ttemporaryBoneInverse.multiply( object.bindMatrix ).toArray( inverseBindMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( json.skins === undefined ) json.skins = [];\n\n\t\tjson.skins.push( {\n\t\t\tinverseBindMatrices: this.processAccessor( new BufferAttribute( inverseBindMatrices, 16 ) ),\n\t\t\tjoints: joints,\n\t\t\tskeleton: nodeMap.get( rootJoint )\n\t\t} );\n\n\t\tconst skinIndex = node.skin = json.skins.length - 1;\n\n\t\treturn skinIndex;\n\n\t}\n\n\t/**\n\t * Process Object3D node\n\t * @param {THREE.Object3D} node Object3D to processNode\n\t * @return {Integer} Index of the node in the nodes list\n\t */\n\tprocessNode( object ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\t\tconst nodeMap = this.nodeMap;\n\n\t\tif ( ! json.nodes ) json.nodes = [];\n\n\t\tconst nodeDef = {};\n\n\t\tif ( options.trs ) {\n\n\t\t\tconst rotation = object.quaternion.toArray();\n\t\t\tconst position = object.position.toArray();\n\t\t\tconst scale = object.scale.toArray();\n\n\t\t\tif ( ! equalArray( rotation, [ 0, 0, 0, 1 ] ) ) {\n\n\t\t\t\tnodeDef.rotation = rotation;\n\n\t\t\t}\n\n\t\t\tif ( ! equalArray( position, [ 0, 0, 0 ] ) ) {\n\n\t\t\t\tnodeDef.translation = position;\n\n\t\t\t}\n\n\t\t\tif ( ! equalArray( scale, [ 1, 1, 1 ] ) ) {\n\n\t\t\t\tnodeDef.scale = scale;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( object.matrixAutoUpdate ) {\n\n\t\t\t\tobject.updateMatrix();\n\n\t\t\t}\n\n\t\t\tif ( isIdentityMatrix( object.matrix ) === false ) {\n\n\t\t\t\tnodeDef.matrix = object.matrix.elements;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// We don't export empty strings name because it represents no-name in Three.js.\n\t\tif ( object.name !== '' ) nodeDef.name = String( object.name );\n\n\t\tthis.serializeUserData( object, nodeDef );\n\n\t\tif ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\tconst meshIndex = this.processMesh( object );\n\n\t\t\tif ( meshIndex !== null ) nodeDef.mesh = meshIndex;\n\n\t\t} else if ( object.isCamera ) {\n\n\t\t\tnodeDef.camera = this.processCamera( object );\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) this.skins.push( object );\n\n\t\tif ( object.children.length > 0 ) {\n\n\t\t\tconst children = [];\n\n\t\t\tfor ( let i = 0, l = object.children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = object.children[ i ];\n\n\t\t\t\tif ( child.visible || options.onlyVisible === false ) {\n\n\t\t\t\t\tconst nodeIndex = this.processNode( child );\n\n\t\t\t\t\tif ( nodeIndex !== null ) children.push( nodeIndex );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( children.length > 0 ) nodeDef.children = children;\n\n\t\t}\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.writeNode && ext.writeNode( object, nodeDef );\n\n\t\t} );\n\n\t\tconst nodeIndex = json.nodes.push( nodeDef ) - 1;\n\t\tnodeMap.set( object, nodeIndex );\n\t\treturn nodeIndex;\n\n\t}\n\n\t/**\n\t * Process Scene\n\t * @param {Scene} node Scene to process\n\t */\n\tprocessScene( scene ) {\n\n\t\tconst json = this.json;\n\t\tconst options = this.options;\n\n\t\tif ( ! json.scenes ) {\n\n\t\t\tjson.scenes = [];\n\t\t\tjson.scene = 0;\n\n\t\t}\n\n\t\tconst sceneDef = {};\n\n\t\tif ( scene.name !== '' ) sceneDef.name = scene.name;\n\n\t\tjson.scenes.push( sceneDef );\n\n\t\tconst nodes = [];\n\n\t\tfor ( let i = 0, l = scene.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = scene.children[ i ];\n\n\t\t\tif ( child.visible || options.onlyVisible === false ) {\n\n\t\t\t\tconst nodeIndex = this.processNode( child );\n\n\t\t\t\tif ( nodeIndex !== null ) nodes.push( nodeIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( nodes.length > 0 ) sceneDef.nodes = nodes;\n\n\t\tthis.serializeUserData( scene, sceneDef );\n\n\t}\n\n\t/**\n\t * Creates a Scene to hold a list of objects and parse it\n\t * @param {Array} objects List of objects to process\n\t */\n\tprocessObjects( objects ) {\n\n\t\tconst scene = new Scene();\n\t\tscene.name = 'AuxScene';\n\n\t\tfor ( let i = 0; i < objects.length; i ++ ) {\n\n\t\t\t// We push directly to children instead of calling `add` to prevent\n\t\t\t// modify the .parent and break its original scene and hierarchy\n\t\t\tscene.children.push( objects[ i ] );\n\n\t\t}\n\n\t\tthis.processScene( scene );\n\n\t}\n\n\t/**\n\t * @param {THREE.Object3D|Array} input\n\t */\n\tprocessInput( input ) {\n\n\t\tconst options = this.options;\n\n\t\tinput = input instanceof Array ? input : [ input ];\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.beforeParse && ext.beforeParse( input );\n\n\t\t} );\n\n\t\tconst objectsWithoutScene = [];\n\n\t\tfor ( let i = 0; i < input.length; i ++ ) {\n\n\t\t\tif ( input[ i ] instanceof Scene ) {\n\n\t\t\t\tthis.processScene( input[ i ] );\n\n\t\t\t} else {\n\n\t\t\t\tobjectsWithoutScene.push( input[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( objectsWithoutScene.length > 0 ) this.processObjects( objectsWithoutScene );\n\n\t\tfor ( let i = 0; i < this.skins.length; ++ i ) {\n\n\t\t\tthis.processSkin( this.skins[ i ] );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < options.animations.length; ++ i ) {\n\n\t\t\tthis.processAnimation( options.animations[ i ], input[ 0 ] );\n\n\t\t}\n\n\t\tthis._invokeAll( function ( ext ) {\n\n\t\t\text.afterParse && ext.afterParse( input );\n\n\t\t} );\n\n\t}\n\n\t_invokeAll( func ) {\n\n\t\tfor ( let i = 0, il = this.plugins.length; i < il; i ++ ) {\n\n\t\t\tfunc( this.plugins[ i ] );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Punctual Lights Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual\n */\nclass GLTFLightExtension {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_lights_punctual';\n\n\t}\n\n\twriteNode( light, nodeDef ) {\n\n\t\tif ( ! light.isLight ) return;\n\n\t\tif ( ! light.isDirectionalLight && ! light.isPointLight && ! light.isSpotLight ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: Only directional, point, and spot lights are supported.', light );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst writer = this.writer;\n\t\tconst json = writer.json;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tconst lightDef = {};\n\n\t\tif ( light.name ) lightDef.name = light.name;\n\n\t\tlightDef.color = light.color.toArray();\n\n\t\tlightDef.intensity = light.intensity;\n\n\t\tif ( light.isDirectionalLight ) {\n\n\t\t\tlightDef.type = 'directional';\n\n\t\t} else if ( light.isPointLight ) {\n\n\t\t\tlightDef.type = 'point';\n\n\t\t\tif ( light.distance > 0 ) lightDef.range = light.distance;\n\n\t\t} else if ( light.isSpotLight ) {\n\n\t\t\tlightDef.type = 'spot';\n\n\t\t\tif ( light.distance > 0 ) lightDef.range = light.distance;\n\n\t\t\tlightDef.spot = {};\n\t\t\tlightDef.spot.innerConeAngle = ( light.penumbra - 1.0 ) * light.angle * - 1.0;\n\t\t\tlightDef.spot.outerConeAngle = light.angle;\n\n\t\t}\n\n\t\tif ( light.decay !== undefined && light.decay !== 2 ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, '\n\t\t\t\t+ 'and expects light.decay=2.' );\n\n\t\t}\n\n\t\tif ( light.target\n\t\t\t\t&& ( light.target.parent !== light\n\t\t\t\t|| light.target.position.x !== 0\n\t\t\t\t|| light.target.position.y !== 0\n\t\t\t\t|| light.target.position.z !== - 1 ) ) {\n\n\t\t\tconsole.warn( 'THREE.GLTFExporter: Light direction may be lost. For best results, '\n\t\t\t\t+ 'make light.target a child of the light with position 0,0,-1.' );\n\n\t\t}\n\n\t\tif ( ! extensionsUsed[ this.name ] ) {\n\n\t\t\tjson.extensions = json.extensions || {};\n\t\t\tjson.extensions[ this.name ] = { lights: [] };\n\t\t\textensionsUsed[ this.name ] = true;\n\n\t\t}\n\n\t\tconst lights = json.extensions[ this.name ].lights;\n\t\tlights.push( lightDef );\n\n\t\tnodeDef.extensions = nodeDef.extensions || {};\n\t\tnodeDef.extensions[ this.name ] = { light: lights.length - 1 };\n\n\t}\n\n}\n\n/**\n * Unlit Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit\n */\nclass GLTFMaterialsUnlitExtension {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_materials_unlit';\n\n\t}\n\n\twriteMaterial( material, materialDef ) {\n\n\t\tif ( ! material.isMeshBasicMaterial ) return;\n\n\t\tconst writer = this.writer;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tmaterialDef.extensions = materialDef.extensions || {};\n\t\tmaterialDef.extensions[ this.name ] = {};\n\n\t\textensionsUsed[ this.name ] = true;\n\n\t\tmaterialDef.pbrMetallicRoughness.metallicFactor = 0.0;\n\t\tmaterialDef.pbrMetallicRoughness.roughnessFactor = 0.9;\n\n\t}\n\n}\n\n/**\n * Specular-Glossiness Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Archived/KHR_materials_pbrSpecularGlossiness\n */\nclass GLTFMaterialsPBRSpecularGlossiness {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_materials_pbrSpecularGlossiness';\n\n\t}\n\n\twriteMaterial( material, materialDef ) {\n\n\t\tif ( ! material.isGLTFSpecularGlossinessMaterial ) return;\n\n\t\tconst writer = this.writer;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tconst extensionDef = {};\n\n\t\tif ( materialDef.pbrMetallicRoughness.baseColorFactor ) {\n\n\t\t\textensionDef.diffuseFactor = materialDef.pbrMetallicRoughness.baseColorFactor;\n\n\t\t}\n\n\t\tconst specularFactor = [ 1, 1, 1 ];\n\t\tmaterial.specular.toArray( specularFactor, 0 );\n\t\textensionDef.specularFactor = specularFactor;\n\t\textensionDef.glossinessFactor = material.glossiness;\n\n\t\tif ( materialDef.pbrMetallicRoughness.baseColorTexture ) {\n\n\t\t\textensionDef.diffuseTexture = materialDef.pbrMetallicRoughness.baseColorTexture;\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tconst specularMapDef = { index: writer.processTexture( material.specularMap ) };\n\t\t\twriter.applyTextureTransform( specularMapDef, material.specularMap );\n\t\t\textensionDef.specularGlossinessTexture = specularMapDef;\n\n\t\t}\n\n\t\tmaterialDef.extensions = materialDef.extensions || {};\n\t\tmaterialDef.extensions[ this.name ] = extensionDef;\n\t\textensionsUsed[ this.name ] = true;\n\n\t}\n\n}\n\n/**\n * Clearcoat Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat\n */\nclass GLTFMaterialsClearcoatExtension {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_materials_clearcoat';\n\n\t}\n\n\twriteMaterial( material, materialDef ) {\n\n\t\tif ( ! material.isMeshPhysicalMaterial ) return;\n\n\t\tconst writer = this.writer;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tconst extensionDef = {};\n\n\t\textensionDef.clearcoatFactor = material.clearcoat;\n\n\t\tif ( material.clearcoatMap ) {\n\n\t\t\tconst clearcoatMapDef = { index: writer.processTexture( material.clearcoatMap ) };\n\t\t\twriter.applyTextureTransform( clearcoatMapDef, material.clearcoatMap );\n\t\t\textensionDef.clearcoatTexture = clearcoatMapDef;\n\n\t\t}\n\n\t\textensionDef.clearcoatRoughnessFactor = material.clearcoatRoughness;\n\n\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\tconst clearcoatRoughnessMapDef = { index: writer.processTexture( material.clearcoatRoughnessMap ) };\n\t\t\twriter.applyTextureTransform( clearcoatRoughnessMapDef, material.clearcoatRoughnessMap );\n\t\t\textensionDef.clearcoatRoughnessTexture = clearcoatRoughnessMapDef;\n\n\t\t}\n\n\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\tconst clearcoatNormalMapDef = { index: writer.processTexture( material.clearcoatNormalMap ) };\n\t\t\twriter.applyTextureTransform( clearcoatNormalMapDef, material.clearcoatNormalMap );\n\t\t\textensionDef.clearcoatNormalTexture = clearcoatNormalMapDef;\n\n\t\t}\n\n\t\tmaterialDef.extensions = materialDef.extensions || {};\n\t\tmaterialDef.extensions[ this.name ] = extensionDef;\n\n\t\textensionsUsed[ this.name ] = true;\n\n\n\t}\n\n}\n\n/**\n * Transmission Materials Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission\n */\nclass GLTFMaterialsTransmissionExtension {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_materials_transmission';\n\n\t}\n\n\twriteMaterial( material, materialDef ) {\n\n\t\tif ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return;\n\n\t\tconst writer = this.writer;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tconst extensionDef = {};\n\n\t\textensionDef.transmissionFactor = material.transmission;\n\n\t\tif ( material.transmissionMap ) {\n\n\t\t\tconst transmissionMapDef = { index: writer.processTexture( material.transmissionMap ) };\n\t\t\twriter.applyTextureTransform( transmissionMapDef, material.transmissionMap );\n\t\t\textensionDef.transmissionTexture = transmissionMapDef;\n\n\t\t}\n\n\t\tmaterialDef.extensions = materialDef.extensions || {};\n\t\tmaterialDef.extensions[ this.name ] = extensionDef;\n\n\t\textensionsUsed[ this.name ] = true;\n\n\t}\n\n}\n\n/**\n * Materials Volume Extension\n *\n * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume\n */\nclass GLTFMaterialsVolumeExtension {\n\n\tconstructor( writer ) {\n\n\t\tthis.writer = writer;\n\t\tthis.name = 'KHR_materials_volume';\n\n\t}\n\n\twriteMaterial( material, materialDef ) {\n\n\t\tif ( ! material.isMeshPhysicalMaterial || material.transmission === 0 ) return;\n\n\t\tconst writer = this.writer;\n\t\tconst extensionsUsed = writer.extensionsUsed;\n\n\t\tconst extensionDef = {};\n\n\t\textensionDef.thicknessFactor = material.thickness;\n\n\t\tif ( material.thicknessMap ) {\n\n\t\t\tconst thicknessMapDef = { index: writer.processTexture( material.thicknessMap ) };\n\t\t\twriter.applyTextureTransform( thicknessMapDef, material.thicknessMap );\n\t\t\textensionDef.thicknessTexture = thicknessMapDef;\n\n\t\t}\n\n\t\textensionDef.attenuationDistance = material.attenuationDistance;\n\t\textensionDef.attenuationColor = material.attenuationColor.toArray();\n\n\t\tmaterialDef.extensions = materialDef.extensions || {};\n\t\tmaterialDef.extensions[ this.name ] = extensionDef;\n\n\t\textensionsUsed[ this.name ] = true;\n\n\t}\n\n}\n\n/**\n * Static utility functions\n */\nGLTFExporter.Utils = {\n\n\tinsertKeyframe: function ( track, time ) {\n\n\t\tconst tolerance = 0.001; // 1ms\n\t\tconst valueSize = track.getValueSize();\n\n\t\tconst times = new track.TimeBufferType( track.times.length + 1 );\n\t\tconst values = new track.ValueBufferType( track.values.length + valueSize );\n\t\tconst interpolant = track.createInterpolant( new track.ValueBufferType( valueSize ) );\n\n\t\tlet index;\n\n\t\tif ( track.times.length === 0 ) {\n\n\t\t\ttimes[ 0 ] = time;\n\n\t\t\tfor ( let i = 0; i < valueSize; i ++ ) {\n\n\t\t\t\tvalues[ i ] = 0;\n\n\t\t\t}\n\n\t\t\tindex = 0;\n\n\t\t} else if ( time < track.times[ 0 ] ) {\n\n\t\t\tif ( Math.abs( track.times[ 0 ] - time ) < tolerance ) return 0;\n\n\t\t\ttimes[ 0 ] = time;\n\t\t\ttimes.set( track.times, 1 );\n\n\t\t\tvalues.set( interpolant.evaluate( time ), 0 );\n\t\t\tvalues.set( track.values, valueSize );\n\n\t\t\tindex = 0;\n\n\t\t} else if ( time > track.times[ track.times.length - 1 ] ) {\n\n\t\t\tif ( Math.abs( track.times[ track.times.length - 1 ] - time ) < tolerance ) {\n\n\t\t\t\treturn track.times.length - 1;\n\n\t\t\t}\n\n\t\t\ttimes[ times.length - 1 ] = time;\n\t\t\ttimes.set( track.times, 0 );\n\n\t\t\tvalues.set( track.values, 0 );\n\t\t\tvalues.set( interpolant.evaluate( time ), track.values.length );\n\n\t\t\tindex = times.length - 1;\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < track.times.length; i ++ ) {\n\n\t\t\t\tif ( Math.abs( track.times[ i ] - time ) < tolerance ) return i;\n\n\t\t\t\tif ( track.times[ i ] < time && track.times[ i + 1 ] > time ) {\n\n\t\t\t\t\ttimes.set( track.times.slice( 0, i + 1 ), 0 );\n\t\t\t\t\ttimes[ i + 1 ] = time;\n\t\t\t\t\ttimes.set( track.times.slice( i + 1 ), i + 2 );\n\n\t\t\t\t\tvalues.set( track.values.slice( 0, ( i + 1 ) * valueSize ), 0 );\n\t\t\t\t\tvalues.set( interpolant.evaluate( time ), ( i + 1 ) * valueSize );\n\t\t\t\t\tvalues.set( track.values.slice( ( i + 1 ) * valueSize ), ( i + 2 ) * valueSize );\n\n\t\t\t\t\tindex = i + 1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\ttrack.times = times;\n\t\ttrack.values = values;\n\n\t\treturn index;\n\n\t},\n\n\tmergeMorphTargetTracks: function ( clip, root ) {\n\n\t\tconst tracks = [];\n\t\tconst mergedTracks = {};\n\t\tconst sourceTracks = clip.tracks;\n\n\t\tfor ( let i = 0; i < sourceTracks.length; ++ i ) {\n\n\t\t\tlet sourceTrack = sourceTracks[ i ];\n\t\t\tconst sourceTrackBinding = PropertyBinding.parseTrackName( sourceTrack.name );\n\t\t\tconst sourceTrackNode = PropertyBinding.findNode( root, sourceTrackBinding.nodeName );\n\n\t\t\tif ( sourceTrackBinding.propertyName !== 'morphTargetInfluences' || sourceTrackBinding.propertyIndex === undefined ) {\n\n\t\t\t\t// Tracks that don't affect morph targets, or that affect all morph targets together, can be left as-is.\n\t\t\t\ttracks.push( sourceTrack );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodDiscrete\n\t\t\t\t&& sourceTrack.createInterpolant !== sourceTrack.InterpolantFactoryMethodLinear ) {\n\n\t\t\t\tif ( sourceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\t\t\t// This should never happen, because glTF morph target animations\n\t\t\t\t\t// affect all targets already.\n\t\t\t\t\tthrow new Error( 'THREE.GLTFExporter: Cannot merge tracks with glTF CUBICSPLINE interpolation.' );\n\n\t\t\t\t}\n\n\t\t\t\tconsole.warn( 'THREE.GLTFExporter: Morph target interpolation mode not yet supported. Using LINEAR instead.' );\n\n\t\t\t\tsourceTrack = sourceTrack.clone();\n\t\t\t\tsourceTrack.setInterpolation( InterpolateLinear );\n\n\t\t\t}\n\n\t\t\tconst targetCount = sourceTrackNode.morphTargetInfluences.length;\n\t\t\tconst targetIndex = sourceTrackNode.morphTargetDictionary[ sourceTrackBinding.propertyIndex ];\n\n\t\t\tif ( targetIndex === undefined ) {\n\n\t\t\t\tthrow new Error( 'THREE.GLTFExporter: Morph target name not found: ' + sourceTrackBinding.propertyIndex );\n\n\t\t\t}\n\n\t\t\tlet mergedTrack;\n\n\t\t\t// If this is the first time we've seen this object, create a new\n\t\t\t// track to store merged keyframe data for each morph target.\n\t\t\tif ( mergedTracks[ sourceTrackNode.uuid ] === undefined ) {\n\n\t\t\t\tmergedTrack = sourceTrack.clone();\n\n\t\t\t\tconst values = new mergedTrack.ValueBufferType( targetCount * mergedTrack.times.length );\n\n\t\t\t\tfor ( let j = 0; j < mergedTrack.times.length; j ++ ) {\n\n\t\t\t\t\tvalues[ j * targetCount + targetIndex ] = mergedTrack.values[ j ];\n\n\t\t\t\t}\n\n\t\t\t\t// We need to take into consideration the intended target node\n\t\t\t\t// of our original un-merged morphTarget animation.\n\t\t\t\tmergedTrack.name = ( sourceTrackBinding.nodeName || '' ) + '.morphTargetInfluences';\n\t\t\t\tmergedTrack.values = values;\n\n\t\t\t\tmergedTracks[ sourceTrackNode.uuid ] = mergedTrack;\n\t\t\t\ttracks.push( mergedTrack );\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst sourceInterpolant = sourceTrack.createInterpolant( new sourceTrack.ValueBufferType( 1 ) );\n\n\t\t\tmergedTrack = mergedTracks[ sourceTrackNode.uuid ];\n\n\t\t\t// For every existing keyframe of the merged track, write a (possibly\n\t\t\t// interpolated) value from the source track.\n\t\t\tfor ( let j = 0; j < mergedTrack.times.length; j ++ ) {\n\n\t\t\t\tmergedTrack.values[ j * targetCount + targetIndex ] = sourceInterpolant.evaluate( mergedTrack.times[ j ] );\n\n\t\t\t}\n\n\t\t\t// For every existing keyframe of the source track, write a (possibly\n\t\t\t// new) keyframe to the merged track. Values from the previous loop may\n\t\t\t// be written again, but keyframes are de-duplicated.\n\t\t\tfor ( let j = 0; j < sourceTrack.times.length; j ++ ) {\n\n\t\t\t\tconst keyframeIndex = this.insertKeyframe( mergedTrack, sourceTrack.times[ j ] );\n\t\t\t\tmergedTrack.values[ keyframeIndex * targetCount + targetIndex ] = sourceTrack.values[ j ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tclip.tracks = tracks;\n\n\t\treturn clip;\n\n\t}\n\n};\n\n/* @license\n * Copyright 2021 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @param object {THREE.Object3D}\n * @return {boolean}\n */\nconst compatibleObject = (object) => {\n // @TODO: Need properer variantMaterials format validation?\n return object.material !==\n undefined && // easier than (!object.isMesh && !object.isLine &&\n // !object.isPoints)\n object.userData && // just in case\n object.userData.variantMaterials &&\n // Is this line costly?\n !!Array\n .from(object.userData.variantMaterials\n .values())\n .filter(m => compatibleMaterial(m.material));\n};\n/**\n * @param material {THREE.Material}\n * @return {boolean}\n */\nconst compatibleMaterial = (material) => {\n // @TODO: support multi materials?\n return material && material.isMaterial && !Array.isArray(material);\n};\nclass GLTFExporterMaterialsVariantsExtension {\n constructor(writer) {\n this.writer = writer;\n this.name = 'KHR_materials_variants';\n this.variantNames = [];\n }\n beforeParse(objects) {\n // Find all variant names and store them to the table\n const variantNameSet = new Set();\n for (const object of objects) {\n object.traverse(o => {\n if (!compatibleObject(o)) {\n return;\n }\n const variantMaterials = o.userData.variantMaterials;\n const variantDataMap = o.userData.variantData;\n for (const [variantName, variantData] of variantDataMap) {\n const variantMaterial = variantMaterials.get(variantData.index);\n // Ignore unloaded variant materials\n if (compatibleMaterial(variantMaterial.material)) {\n variantNameSet.add(variantName);\n }\n }\n });\n }\n // We may want to sort?\n variantNameSet.forEach(name => this.variantNames.push(name));\n }\n writeMesh(mesh, meshDef) {\n if (!compatibleObject(mesh)) {\n return;\n }\n const userData = mesh.userData;\n const variantMaterials = userData.variantMaterials;\n const variantDataMap = userData.variantData;\n const mappingTable = new Map();\n // Removes gaps in the variant indices list (caused by deleting variants).\n const reIndexedVariants = new Map();\n const variants = Array.from(variantDataMap.values()).sort((a, b) => {\n return a.index - b.index;\n });\n for (const [i, variantData] of variants.entries()) {\n reIndexedVariants.set(variantData.index, i);\n }\n for (const variantData of variantDataMap.values()) {\n const variantMaterialInstance = variantMaterials.get(variantData.index).material;\n if (!compatibleMaterial(variantMaterialInstance)) {\n continue;\n }\n const materialIndex = this.writer.processMaterial(variantMaterialInstance);\n if (!mappingTable.has(materialIndex)) {\n mappingTable.set(materialIndex, { material: materialIndex, variants: [] });\n }\n mappingTable.get(materialIndex).variants.push(reIndexedVariants.get(variantData.index));\n }\n const mappingsDef = Array.from(mappingTable.values())\n .map((m => { return m.variants.sort((a, b) => a - b) && m; }))\n .sort((a, b) => a.material - b.material);\n if (mappingsDef.length === 0) {\n return;\n }\n const originalMaterialIndex = compatibleMaterial(userData.originalMaterial) ?\n this.writer.processMaterial(userData.originalMaterial) :\n -1;\n for (const primitiveDef of meshDef.primitives) {\n // Override primitiveDef.material with original material.\n if (originalMaterialIndex >= 0) {\n primitiveDef.material = originalMaterialIndex;\n }\n primitiveDef.extensions = primitiveDef.extensions || {};\n primitiveDef.extensions[this.name] = { mappings: mappingsDef };\n }\n }\n afterParse() {\n if (this.variantNames.length === 0) {\n return;\n }\n const root = this.writer.json;\n root.extensions = root.extensions || {};\n const variantsDef = this.variantNames.map(n => {\n return { name: n };\n });\n root.extensions[this.name] = { variants: variantsDef };\n this.writer.extensionsUsed[this.name] = true;\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $correlatedObjects = Symbol('correlatedObjects');\nconst $sourceObject = Symbol('sourceObject');\nconst $onUpdate = Symbol('onUpdate');\n/**\n * A SerializableThreeDOMElement is the common primitive of all scene graph\n * elements that have been facaded in the host execution context. It adds\n * a common interface to these elements in support of convenient\n * serializability.\n */\nclass ThreeDOMElement {\n constructor(onUpdate, element, correlatedObjects = null) {\n this[$onUpdate] = onUpdate;\n this[$sourceObject] = element;\n this[$correlatedObjects] = correlatedObjects;\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst loader = new ImageLoader();\nconst quadMaterial = new MeshBasicMaterial();\nconst quad = new PlaneGeometry(2, 2);\nlet adhocNum = 0;\nconst $threeTexture = Symbol('threeTexture');\n/**\n * Image facade implementation for Three.js textures\n */\nclass Image$1 extends ThreeDOMElement {\n get [$threeTexture]() {\n var _a;\n console.assert(this[$correlatedObjects] != null && this[$correlatedObjects].size > 0, 'Image correlated object is undefined');\n return (_a = this[$correlatedObjects]) === null || _a === void 0 ? void 0 : _a.values().next().value;\n }\n constructor(onUpdate, texture, gltfImage) {\n gltfImage = gltfImage !== null && gltfImage !== void 0 ? gltfImage : {\n name: (texture && texture.image && texture.image.src) ?\n texture.image.src.split('/').pop() :\n 'adhoc_image',\n uri: (texture && texture.image && texture.image.src) ?\n texture.image.src :\n 'adhoc_image' + adhocNum++\n };\n super(onUpdate, gltfImage, new Set(texture ? [texture] : []));\n }\n get name() {\n return this[$sourceObject].name || '';\n }\n get uri() {\n return this[$sourceObject].uri;\n }\n get bufferView() {\n return this[$sourceObject].bufferView;\n }\n get type() {\n return this.uri != null ? 'external' : 'embedded';\n }\n set name(name) {\n this[$sourceObject].name = name;\n }\n async setURI(uri) {\n this[$sourceObject].uri = uri;\n this[$sourceObject].name = uri.split('/').pop();\n const image = await new Promise((resolve, reject) => {\n loader.load(uri, resolve, undefined, reject);\n });\n const texture = this[$threeTexture];\n texture.image = image;\n texture.needsUpdate = true;\n this[$onUpdate]();\n }\n async createThumbnail(width, height) {\n const scene = new Scene();\n quadMaterial.map = this[$threeTexture];\n const mesh = new Mesh(quad, quadMaterial);\n scene.add(mesh);\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\n const { threeRenderer } = Renderer.singleton;\n const renderTarget = new WebGLRenderTarget(width, height);\n threeRenderer.setRenderTarget(renderTarget);\n threeRenderer.render(scene, camera);\n threeRenderer.setRenderTarget(null);\n const buffer = new Uint8Array(width * height * 4);\n threeRenderer.readRenderTargetPixels(renderTarget, 0, 0, width, height, buffer);\n blobCanvas.width = width;\n blobCanvas.height = height;\n const blobContext = blobCanvas.getContext('2d');\n const imageData = blobContext.createImageData(width, height);\n imageData.data.set(buffer);\n blobContext.putImageData(imageData, 0, 0);\n return new Promise(async (resolve, reject) => {\n blobCanvas.toBlob(blob => {\n if (!blob) {\n return reject('Failed to capture thumbnail.');\n }\n resolve(URL.createObjectURL(blob));\n }, 'image/png');\n });\n }\n}\n\nvar Filter;\n(function (Filter) {\n Filter[Filter[\"Nearest\"] = 9728] = \"Nearest\";\n Filter[Filter[\"Linear\"] = 9729] = \"Linear\";\n Filter[Filter[\"NearestMipmapNearest\"] = 9984] = \"NearestMipmapNearest\";\n Filter[Filter[\"LinearMipmapNearest\"] = 9985] = \"LinearMipmapNearest\";\n Filter[Filter[\"NearestMipmapLinear\"] = 9986] = \"NearestMipmapLinear\";\n Filter[Filter[\"LinearMipmapLinear\"] = 9987] = \"LinearMipmapLinear\";\n})(Filter || (Filter = {}));\nvar Wrap;\n(function (Wrap) {\n Wrap[Wrap[\"ClampToEdge\"] = 33071] = \"ClampToEdge\";\n Wrap[Wrap[\"MirroredRepeat\"] = 33648] = \"MirroredRepeat\";\n Wrap[Wrap[\"Repeat\"] = 10497] = \"Repeat\";\n})(Wrap || (Wrap = {}));\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst isMinFilter = (() => {\n const minFilterValues = [\n Filter.Nearest,\n Filter.Linear,\n Filter.NearestMipmapNearest,\n Filter.LinearMipmapLinear,\n Filter.NearestMipmapLinear,\n Filter.LinearMipmapLinear\n ];\n return (value) => minFilterValues.indexOf(value) > -1;\n})();\nconst isMagFilter = (() => {\n const magFilterValues = [Filter.Nearest, Filter.Linear];\n return (value) => magFilterValues.indexOf(value) > -1;\n})();\nconst isWrapMode = (() => {\n const wrapModes = [Wrap.ClampToEdge, Wrap.MirroredRepeat, Wrap.Repeat];\n return (value) => wrapModes.indexOf(value) > -1;\n})();\nconst isValidSamplerValue = (property, value) => {\n switch (property) {\n case 'minFilter':\n return isMinFilter(value);\n case 'magFilter':\n return isMagFilter(value);\n case 'wrapS':\n case 'wrapT':\n return isWrapMode(value);\n default:\n throw new Error(`Cannot configure property \"${property}\" on Sampler`);\n }\n};\nconst $threeTextures = Symbol('threeTextures');\nconst $setProperty = Symbol('setProperty');\nconst $sourceSampler = Symbol('sourceSampler');\n/**\n * Sampler facade implementation for Three.js textures\n */\nclass Sampler extends ThreeDOMElement {\n get [$threeTextures]() {\n console.assert(this[$correlatedObjects] != null && this[$correlatedObjects].size > 0, 'Sampler correlated object is undefined');\n return this[$correlatedObjects];\n }\n get [$sourceSampler]() {\n console.assert(this[$sourceObject] != null, 'Sampler source is undefined');\n return this[$sourceObject];\n }\n constructor(onUpdate, texture, gltfSampler) {\n gltfSampler = gltfSampler !== null && gltfSampler !== void 0 ? gltfSampler : {};\n // These defaults represent a convergence of glTF defaults for wrap mode and\n // Three.js defaults for filters. Per glTF 2.0 spec, a renderer may choose\n // its own defaults for filters.\n // @see https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#reference-sampler\n // @see https://threejs.org/docs/#api/en/textures/Texture\n if (gltfSampler.minFilter == null) {\n gltfSampler.minFilter =\n texture ? texture.minFilter : Filter.LinearMipmapLinear;\n }\n if (gltfSampler.magFilter == null) {\n gltfSampler.magFilter =\n texture ? texture.magFilter : Filter.Linear;\n }\n if (gltfSampler.wrapS == null) {\n gltfSampler.wrapS = texture ? texture.wrapS : Wrap.Repeat;\n }\n if (gltfSampler.wrapT == null) {\n gltfSampler.wrapT = texture ? texture.wrapT : Wrap.Repeat;\n }\n super(onUpdate, gltfSampler, new Set(texture ? [texture] : []));\n }\n get name() {\n return this[$sourceObject].name || '';\n }\n get minFilter() {\n return this[$sourceSampler].minFilter;\n }\n get magFilter() {\n return this[$sourceSampler].magFilter;\n }\n get wrapS() {\n return this[$sourceSampler].wrapS;\n }\n get wrapT() {\n return this[$sourceSampler].wrapT;\n }\n setMinFilter(filter) {\n this[$setProperty]('minFilter', filter);\n }\n setMagFilter(filter) {\n this[$setProperty]('magFilter', filter);\n }\n setWrapS(mode) {\n this[$setProperty]('wrapS', mode);\n }\n setWrapT(mode) {\n this[$setProperty]('wrapT', mode);\n }\n [$setProperty](property, value) {\n const sampler = this[$sourceSampler];\n if (sampler != null) {\n if (isValidSamplerValue(property, value)) {\n sampler[property] = value;\n for (const texture of this[$threeTextures]) {\n texture[property] = value;\n texture.needsUpdate = true;\n }\n }\n this[$onUpdate]();\n }\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $image = Symbol('image');\nconst $sampler = Symbol('sampler');\n/**\n * Material facade implementation for Three.js materials\n */\nclass Texture extends ThreeDOMElement {\n constructor(onUpdate, threeTexture, gltfTexture = null, gltfSampler = null, gltfImage = null) {\n super(onUpdate, gltfTexture ? gltfTexture : {}, new Set(threeTexture ? [threeTexture] : []));\n this[$sampler] = new Sampler(onUpdate, threeTexture, gltfSampler);\n this[$image] = new Image$1(onUpdate, threeTexture, gltfImage);\n }\n get name() {\n return this[$sourceObject].name || '';\n }\n set name(name) {\n this[$sourceObject].name = name;\n }\n get sampler() {\n return this[$sampler];\n }\n get source() {\n return this[$image];\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$3, _b$2;\nconst $texture = Symbol('texture');\nconst $transform = Symbol('transform');\nconst $materials$2 = Symbol('materials');\nconst $usage = Symbol('usage');\n// Defines what a texture will be used for.\nvar TextureUsage;\n(function (TextureUsage) {\n TextureUsage[TextureUsage[\"Base\"] = 0] = \"Base\";\n TextureUsage[TextureUsage[\"MetallicRoughness\"] = 1] = \"MetallicRoughness\";\n TextureUsage[TextureUsage[\"Normal\"] = 2] = \"Normal\";\n TextureUsage[TextureUsage[\"Occlusion\"] = 3] = \"Occlusion\";\n TextureUsage[TextureUsage[\"Emissive\"] = 4] = \"Emissive\";\n})(TextureUsage || (TextureUsage = {}));\n/**\n * TextureInfo facade implementation for Three.js materials\n */\nclass TextureInfo {\n constructor(onUpdate, usage, threeTexture, material, gltf, gltfTextureInfo) {\n this[_a$3] = null;\n this[_b$2] = {\n rotation: 0,\n scale: new Vector2(1, 1),\n offset: new Vector2(0, 0)\n };\n // Creates image, sampler, and texture if valid texture info is provided.\n if (gltfTextureInfo && threeTexture) {\n const gltfTexture = gltf.textures ? gltf.textures[gltfTextureInfo.index] : null;\n const sampler = gltfTexture ?\n (gltf.samplers ? gltf.samplers[gltfTexture.sampler] : null) :\n null;\n const image = gltfTexture ?\n (gltf.images ? gltf.images[gltfTexture.source] : null) :\n null;\n this[$transform].rotation = threeTexture.rotation;\n this[$transform].scale.copy(threeTexture.repeat);\n this[$transform].offset.copy(threeTexture.offset);\n this[$texture] =\n new Texture(onUpdate, threeTexture, gltfTexture, sampler, image);\n }\n this.onUpdate = onUpdate;\n this[$materials$2] = material;\n this[$usage] = usage;\n }\n get texture() {\n return this[$texture];\n }\n setTexture(texture) {\n const threeTexture = texture != null ? texture.source[$threeTexture] : null;\n let encoding = sRGBEncoding;\n this[$texture] = texture;\n if (this[$materials$2]) {\n for (const material of this[$materials$2]) {\n switch (this[$usage]) {\n case TextureUsage.Base:\n material.map = threeTexture;\n break;\n case TextureUsage.MetallicRoughness:\n encoding = LinearEncoding;\n material.metalnessMap = threeTexture;\n material.roughnessMap = threeTexture;\n break;\n case TextureUsage.Normal:\n encoding = LinearEncoding;\n material.normalMap = threeTexture;\n break;\n case TextureUsage.Occlusion:\n encoding = LinearEncoding;\n material.aoMap = threeTexture;\n break;\n case TextureUsage.Emissive:\n material.emissiveMap = threeTexture;\n break;\n }\n material.needsUpdate = true;\n }\n }\n if (threeTexture) {\n // Updates the encoding for the texture, affects all references.\n threeTexture.encoding = encoding;\n threeTexture.rotation = this[$transform].rotation;\n threeTexture.repeat = this[$transform].scale;\n threeTexture.offset = this[$transform].offset;\n }\n this.onUpdate();\n }\n}\n_a$3 = $texture, _b$2 = $transform;\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst $threeMaterials = Symbol('threeMaterials');\nconst $baseColorTexture = Symbol('baseColorTexture');\nconst $metallicRoughnessTexture = Symbol('metallicRoughnessTexture');\n/**\n * PBR material properties facade implementation for Three.js materials\n */\nclass PBRMetallicRoughness extends ThreeDOMElement {\n constructor(onUpdate, gltf, pbrMetallicRoughness, correlatedMaterials) {\n super(onUpdate, pbrMetallicRoughness, correlatedMaterials);\n // Assign glTF default values\n if (pbrMetallicRoughness.baseColorFactor == null) {\n pbrMetallicRoughness.baseColorFactor = [1, 1, 1, 1];\n }\n if (pbrMetallicRoughness.roughnessFactor == null) {\n pbrMetallicRoughness.roughnessFactor = 1;\n }\n if (pbrMetallicRoughness.metallicFactor == null) {\n pbrMetallicRoughness.metallicFactor = 1;\n }\n const { baseColorTexture: gltfBaseColorTexture, metallicRoughnessTexture: gltfMetallicRoughnessTexture } = pbrMetallicRoughness;\n const { map, metalnessMap } = correlatedMaterials.values().next().value;\n this[$baseColorTexture] = new TextureInfo(onUpdate, TextureUsage.Base, map, correlatedMaterials, gltf, gltfBaseColorTexture ? gltfBaseColorTexture : null);\n this[$metallicRoughnessTexture] = new TextureInfo(onUpdate, TextureUsage.MetallicRoughness, metalnessMap, correlatedMaterials, gltf, gltfMetallicRoughnessTexture ? gltfMetallicRoughnessTexture : null);\n }\n get [$threeMaterials]() {\n return this[$correlatedObjects];\n }\n get baseColorFactor() {\n return this[$sourceObject]\n .baseColorFactor;\n }\n get metallicFactor() {\n return this[$sourceObject]\n .metallicFactor;\n }\n get roughnessFactor() {\n return this[$sourceObject]\n .roughnessFactor;\n }\n get baseColorTexture() {\n return this[$baseColorTexture];\n }\n get metallicRoughnessTexture() {\n return this[$metallicRoughnessTexture];\n }\n setBaseColorFactor(rgba) {\n for (const material of this[$threeMaterials]) {\n material.color.fromArray(rgba);\n material.opacity = (rgba)[3];\n }\n const pbrMetallicRoughness = this[$sourceObject];\n pbrMetallicRoughness.baseColorFactor = rgba;\n this[$onUpdate]();\n }\n setMetallicFactor(value) {\n for (const material of this[$threeMaterials]) {\n material.metalness = value;\n }\n const pbrMetallicRoughness = this[$sourceObject];\n pbrMetallicRoughness.metallicFactor = value;\n this[$onUpdate]();\n }\n setRoughnessFactor(value) {\n for (const material of this[$threeMaterials]) {\n material.roughness = value;\n }\n const pbrMetallicRoughness = this[$sourceObject];\n pbrMetallicRoughness.roughnessFactor = value;\n this[$onUpdate]();\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a$2;\nconst $pbrMetallicRoughness = Symbol('pbrMetallicRoughness');\nconst $normalTexture = Symbol('normalTexture');\nconst $occlusionTexture = Symbol('occlusionTexture');\nconst $emissiveTexture = Symbol('emissiveTexture');\nconst $backingThreeMaterial = Symbol('backingThreeMaterial');\nconst $applyAlphaCutoff = Symbol('applyAlphaCutoff');\nconst $lazyLoadGLTFInfo = Symbol('lazyLoadGLTFInfo');\nconst $initialize = Symbol('initialize');\nconst $getLoadedMaterial = Symbol('getLoadedMaterial');\nconst $ensureMaterialIsLoaded = Symbol('ensureMaterialIsLoaded');\nconst $gltfIndex = Symbol('gltfIndex');\nconst $setActive = Symbol('setActive');\nconst $variantIndices = Symbol('variantIndices');\nconst $isActive = Symbol('isActive');\nconst $variantSet = Symbol('variantSet');\nconst $modelVariants$1 = Symbol('modelVariants');\n/**\n * Material facade implementation for Three.js materials\n */\nclass Material extends ThreeDOMElement {\n constructor(onUpdate, gltf, gltfMaterial, gltfIndex, isActive, modelVariants, correlatedMaterials, lazyLoadInfo = undefined) {\n super(onUpdate, gltfMaterial, correlatedMaterials);\n this[_a$2] = new Set();\n this[$gltfIndex] = gltfIndex;\n this[$isActive] = isActive;\n this[$modelVariants$1] = modelVariants;\n if (lazyLoadInfo == null) {\n this[$initialize](gltf);\n }\n else {\n this[$lazyLoadGLTFInfo] = lazyLoadInfo;\n }\n }\n get [(_a$2 = $variantSet, $backingThreeMaterial)]() {\n return this[$correlatedObjects]\n .values()\n .next()\n .value;\n }\n [$initialize](gltf) {\n const onUpdate = this[$onUpdate];\n const gltfMaterial = this[$sourceObject];\n const correlatedMaterials = this[$correlatedObjects];\n if (gltfMaterial.extensions &&\n gltfMaterial.extensions['KHR_materials_pbrSpecularGlossiness']) {\n console.warn(`Material ${gltfMaterial.name} uses a deprecated extension\n \"KHR_materials_pbrSpecularGlossiness\", please use\n \"pbrMetallicRoughness\" instead. Specular Glossiness materials are\n currently supported for rendering, but not for our scene-graph API,\n nor for auto-generation of USDZ for Quick Look.`);\n }\n if (gltfMaterial.pbrMetallicRoughness == null) {\n gltfMaterial.pbrMetallicRoughness = {};\n }\n this[$pbrMetallicRoughness] = new PBRMetallicRoughness(onUpdate, gltf, gltfMaterial.pbrMetallicRoughness, correlatedMaterials);\n if (gltfMaterial.emissiveFactor == null) {\n gltfMaterial.emissiveFactor = [0, 0, 0];\n }\n if (gltfMaterial.doubleSided == null) {\n gltfMaterial.doubleSided = false;\n }\n if (gltfMaterial.alphaMode == null) {\n gltfMaterial.alphaMode = 'OPAQUE';\n }\n if (gltfMaterial.alphaCutoff == null) {\n gltfMaterial.alphaCutoff = 0.5;\n }\n const { normalTexture: gltfNormalTexture, occlusionTexture: gltfOcculsionTexture, emissiveTexture: gltfEmissiveTexture } = gltfMaterial;\n const { normalMap, aoMap, emissiveMap } = correlatedMaterials.values().next().value;\n this[$normalTexture] = new TextureInfo(onUpdate, TextureUsage.Normal, normalMap, correlatedMaterials, gltf, gltfNormalTexture ? gltfNormalTexture : null);\n this[$occlusionTexture] = new TextureInfo(onUpdate, TextureUsage.Occlusion, aoMap, correlatedMaterials, gltf, gltfOcculsionTexture ? gltfOcculsionTexture : null);\n this[$emissiveTexture] = new TextureInfo(onUpdate, TextureUsage.Emissive, emissiveMap, correlatedMaterials, gltf, gltfEmissiveTexture ? gltfEmissiveTexture : null);\n }\n async [$getLoadedMaterial]() {\n if (this[$lazyLoadGLTFInfo] != null) {\n const { set, material } = await this[$lazyLoadGLTFInfo].doLazyLoad();\n // Fills in the missing data.\n this[$correlatedObjects] = set;\n this[$initialize](this[$lazyLoadGLTFInfo].gltf);\n // Releases lazy load info.\n this[$lazyLoadGLTFInfo] = undefined;\n // Redefines the method as a noop method.\n this.ensureLoaded = async () => { };\n return material;\n }\n return this[$correlatedObjects].values().next().value;\n }\n [$ensureMaterialIsLoaded]() {\n if (this[$lazyLoadGLTFInfo] == null) {\n return;\n }\n throw new Error(`Material \"${this.name}\" has not been loaded, call 'await\n myMaterial.ensureLoaded()' before using an unloaded material.`);\n }\n async ensureLoaded() {\n await this[$getLoadedMaterial]();\n }\n get isLoaded() {\n return this[$lazyLoadGLTFInfo] == null;\n }\n get isActive() {\n return this[$isActive];\n }\n [$setActive](isActive) {\n this[$isActive] = isActive;\n }\n get name() {\n return this[$sourceObject].name;\n }\n set name(name) {\n const sourceMaterial = this[$sourceObject];\n if (sourceMaterial != null) {\n sourceMaterial.name = name;\n }\n if (this[$correlatedObjects] != null) {\n for (const threeMaterial of this[$correlatedObjects]) {\n threeMaterial.name = name;\n }\n }\n }\n get pbrMetallicRoughness() {\n this[$ensureMaterialIsLoaded]();\n return this[$pbrMetallicRoughness];\n }\n get normalTexture() {\n this[$ensureMaterialIsLoaded]();\n return this[$normalTexture];\n }\n get occlusionTexture() {\n this[$ensureMaterialIsLoaded]();\n return this[$occlusionTexture];\n }\n get emissiveTexture() {\n this[$ensureMaterialIsLoaded]();\n return this[$emissiveTexture];\n }\n get emissiveFactor() {\n this[$ensureMaterialIsLoaded]();\n return this[$sourceObject].emissiveFactor;\n }\n get index() {\n return this[$gltfIndex];\n }\n [$variantIndices]() {\n return this[$variantSet];\n }\n hasVariant(name) {\n const variantData = this[$modelVariants$1].get(name);\n return variantData != null && this[$variantSet].has(variantData.index);\n }\n setEmissiveFactor(rgb) {\n this[$ensureMaterialIsLoaded]();\n for (const material of this[$correlatedObjects]) {\n material.emissive.fromArray(rgb);\n }\n this[$sourceObject].emissiveFactor = rgb;\n this[$onUpdate]();\n }\n [$applyAlphaCutoff]() {\n this[$ensureMaterialIsLoaded]();\n const gltfMaterial = this[$sourceObject];\n for (const material of this[$correlatedObjects]) {\n if (this[$sourceObject].alphaMode === 'MASK') {\n material.alphaTest = gltfMaterial.alphaCutoff;\n }\n else {\n material.alphaTest = undefined;\n }\n material.needsUpdate = true;\n }\n }\n setAlphaCutoff(cutoff) {\n this[$ensureMaterialIsLoaded]();\n this[$sourceObject].alphaCutoff = cutoff;\n this[$applyAlphaCutoff]();\n this[$onUpdate]();\n }\n getAlphaCutoff() {\n this[$ensureMaterialIsLoaded]();\n return this[$sourceObject].alphaCutoff;\n }\n setDoubleSided(doubleSided) {\n this[$ensureMaterialIsLoaded]();\n for (const material of this[$correlatedObjects]) {\n // When double-sided is disabled gltf spec dictates that Back-Face culling\n // must be disabled, in three.js parlance that would mean FrontSide\n // rendering only.\n // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#double-sided\n material.side = doubleSided ? DoubleSide : FrontSide;\n material.needsUpdate = true;\n }\n this[$sourceObject].doubleSided = doubleSided;\n this[$onUpdate]();\n }\n getDoubleSided() {\n this[$ensureMaterialIsLoaded]();\n return this[$sourceObject].doubleSided;\n }\n setAlphaMode(alphaMode) {\n this[$ensureMaterialIsLoaded]();\n const enableTransparency = (material, enabled) => {\n material.transparent = enabled;\n material.depthWrite = !enabled;\n };\n this[$sourceObject].alphaMode = alphaMode;\n for (const material of this[$correlatedObjects]) {\n enableTransparency(material, alphaMode === 'BLEND');\n this[$applyAlphaCutoff]();\n material.needsUpdate = true;\n }\n this[$onUpdate]();\n }\n getAlphaMode() {\n this[$ensureMaterialIsLoaded]();\n return this[$sourceObject].alphaMode;\n }\n}\n\nvar _a$1, _b$1, _c$1;\nconst $materials$1 = Symbol('materials');\nconst $variantToMaterialMap = Symbol('variantToMaterialMap');\nconst $modelVariants = Symbol('modelVariants');\nconst $mesh = Symbol('mesh');\nconst $children = Symbol('children');\nconst $initialMaterialIdx = Symbol('initialMaterialIdx');\nconst $activeMaterialIdx = Symbol('activeMaterialIdx');\n// Defines the base level node methods and data.\nclass Node$1 {\n constructor(name) {\n this.name = '';\n this[_a$1] = new Array();\n this.name = name;\n }\n}\n_a$1 = $children;\n// Represents a primitive in a glTF mesh.\nclass PrimitiveNode extends Node$1 {\n constructor(mesh, mvMaterials, modelVariants, correlatedSceneGraph) {\n super(mesh.name);\n // Maps glTF material index number to a material that this primitive supports.\n this[_b$1] = new Map();\n // Maps variant index to material.\n this[_c$1] = new Map();\n this[$mesh] = mesh;\n const { gltf, threeGLTF, threeObjectMap } = correlatedSceneGraph;\n this[$modelVariants] = modelVariants;\n this.mesh.userData.variantData = modelVariants;\n // Captures the primitive's initial material.\n const materialMappings = threeObjectMap.get(mesh.material);\n if (materialMappings.materials != null) {\n this[$initialMaterialIdx] = this[$activeMaterialIdx] =\n materialMappings.materials;\n }\n else {\n console.error(`Primitive (${mesh.name}) missing initial material reference.`);\n }\n // Gets the mesh index from the node.\n const associations = mesh.userData.associations ||\n {};\n if (associations.meshes == null) {\n console.error('Mesh is missing primitive index association');\n return;\n }\n // The gltf mesh array to sample from.\n const meshElementArray = gltf['meshes'] || [];\n // List of primitives under the mesh.\n const gltfPrimitives = (meshElementArray[associations.meshes].primitives || []);\n const gltfPrimitive = gltfPrimitives[associations.primitives];\n if (gltfPrimitive == null) {\n console.error('Mesh primitive definition is missing.');\n return;\n }\n // Maps the gltfPrimitive default to a material.\n if (gltfPrimitive.material != null) {\n this[$materials$1].set(gltfPrimitive.material, mvMaterials[gltfPrimitive.material]);\n }\n else {\n const defaultIdx = mvMaterials.findIndex((mat) => {\n return mat.name === 'Default';\n });\n if (defaultIdx >= 0) {\n this[$materials$1].set(defaultIdx, mvMaterials[defaultIdx]);\n }\n else {\n console.warn('gltfPrimitive has no material!');\n }\n }\n if (gltfPrimitive.extensions &&\n gltfPrimitive.extensions['KHR_materials_variants']) {\n const variantsExtension = gltfPrimitive.extensions['KHR_materials_variants'];\n const extensions = threeGLTF.parser.json.extensions;\n const variantNames = extensions['KHR_materials_variants'].variants;\n // Provides definition now that we know there are variants to\n // support.\n for (const mapping of variantsExtension.mappings) {\n const mvMaterial = mvMaterials[mapping.material];\n // Maps variant indices to Materials.\n this[$materials$1].set(mapping.material, mvMaterial);\n for (const variant of mapping.variants) {\n const { name } = variantNames[variant];\n this[$variantToMaterialMap].set(variant, mvMaterial);\n // Provides variant info for material self lookup.\n mvMaterial[$variantIndices]().add(variant);\n // Updates the models variant data.\n if (!modelVariants.has(name)) {\n modelVariants.set(name, { name, index: variant });\n }\n }\n }\n }\n }\n get mesh() {\n return this[$mesh];\n }\n async setActiveMaterial(material) {\n const mvMaterial = this[$materials$1].get(material);\n if (mvMaterial != null) {\n this.mesh.material = await mvMaterial[$getLoadedMaterial]();\n this[$activeMaterialIdx] = material;\n }\n return this.mesh.material;\n }\n getActiveMaterial() {\n return this[$materials$1].get(this[$activeMaterialIdx]);\n }\n getMaterial(index) {\n return this[$materials$1].get(index);\n }\n async enableVariant(name) {\n if (name == null) {\n return this.setActiveMaterial(this[$initialMaterialIdx]);\n }\n if (this[$variantToMaterialMap] != null && this[$modelVariants].has(name)) {\n const modelVariants = this[$modelVariants].get(name);\n return this.enableVariantHelper(modelVariants.index);\n }\n return null;\n }\n async enableVariantHelper(index) {\n if (this[$variantToMaterialMap] != null && index != null) {\n const material = this[$variantToMaterialMap].get(index);\n if (material != null) {\n return this.setActiveMaterial(material.index);\n }\n }\n return null;\n }\n async instantiateVariants() {\n if (this[$variantToMaterialMap] == null) {\n return;\n }\n for (const index of this[$variantToMaterialMap].keys()) {\n if (this.mesh.userData.variantMaterials.get(index).material != null) {\n continue;\n }\n const threeMaterial = await this.enableVariantHelper(index);\n if (threeMaterial != null) {\n this.mesh.userData.variantMaterials.get(index).material = threeMaterial;\n }\n }\n }\n get variantInfo() {\n return this[$variantToMaterialMap];\n }\n addVariant(materialVariant, variantName) {\n if (!this.ensureVariantIsUnused(variantName)) {\n return false;\n }\n // Adds the variant to the model variants if needed.\n if (!this[$modelVariants].has(variantName)) {\n this[$modelVariants].set(variantName, { name: variantName, index: this[$modelVariants].size });\n }\n const modelVariantData = this[$modelVariants].get(variantName);\n const variantIndex = modelVariantData.index;\n // Updates materials mapped to the variant.\n materialVariant[$variantIndices]().add(variantIndex);\n // Updates internal mappings.\n this[$variantToMaterialMap].set(variantIndex, materialVariant);\n this[$materials$1].set(materialVariant.index, materialVariant);\n this.updateVariantUserData(variantIndex, materialVariant);\n return true;\n }\n deleteVariant(variantIndex) {\n if (this.variantInfo.has(variantIndex)) {\n this.variantInfo.delete(variantIndex);\n const userDataMap = this.mesh.userData.variantMaterials;\n if (userDataMap != null) {\n userDataMap.delete(variantIndex);\n }\n }\n }\n updateVariantUserData(variantIndex, materialVariant) {\n // Adds variants name to material variants set.\n materialVariant[$variantIndices]().add(variantIndex);\n this.mesh.userData.variantData = this[$modelVariants];\n // Updates import data (see VariantMaterialLoaderPlugin.ts).\n this.mesh.userData.variantMaterials = this.mesh.userData.variantMaterials ||\n new Map();\n const map = this.mesh.userData.variantMaterials;\n map.set(variantIndex, {\n material: materialVariant[$correlatedObjects].values().next().value,\n gltfMaterialIndex: materialVariant.index,\n });\n }\n ensureVariantIsUnused(variantName) {\n const modelVariants = this[$modelVariants].get(variantName);\n if (modelVariants != null && this.variantInfo.has(modelVariants.index)) {\n console.warn(`Primitive cannot add variant '${variantName}' for this material, it already exists.`);\n return false;\n }\n return true;\n }\n}\n_b$1 = $materials$1, _c$1 = $variantToMaterialMap;\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a, _b, _c, _d, _e, _f;\nconst $materials = Symbol('materials');\nconst $hierarchy = Symbol('hierarchy');\nconst $roots = Symbol('roots');\nconst $primitivesList = Symbol('primitives');\nconst $correlatedSceneGraph = Symbol('correlatedSceneGraph');\nconst $prepareVariantsForExport = Symbol('prepareVariantsForExport');\nconst $switchVariant = Symbol('switchVariant');\nconst $threeScene = Symbol('threeScene');\nconst $materialsFromPoint = Symbol('materialsFromPoint');\nconst $materialFromPoint = Symbol('materialFromPoint');\nconst $variantData = Symbol('variantData');\nconst $availableVariants = Symbol('availableVariants');\nconst $modelOnUpdate = Symbol('modelOnUpdate');\nconst $cloneMaterial = Symbol('cloneMaterial');\n// Holds onto temporary scene context information needed to perform lazy loading\n// of a resource.\nclass LazyLoader {\n constructor(gltf, gltfElementMap, mapKey, doLazyLoad) {\n this.gltf = gltf;\n this.gltfElementMap = gltfElementMap;\n this.mapKey = mapKey;\n this.doLazyLoad = doLazyLoad;\n }\n}\n/**\n * A Model facades the top-level GLTF object returned by Three.js' GLTFLoader.\n * Currently, the model only bothers itself with the materials in the Three.js\n * scene graph.\n */\nclass Model {\n constructor(correlatedSceneGraph, onUpdate = () => { }) {\n this[_a] = new Array();\n this[_b] = new Array();\n this[_c] = new Array();\n this[_d] = new Array();\n this[_e] = () => { };\n this[_f] = new Map();\n this[$modelOnUpdate] = onUpdate;\n this[$correlatedSceneGraph] = correlatedSceneGraph;\n const { gltf, threeGLTF, gltfElementMap } = correlatedSceneGraph;\n this[$threeScene] = threeGLTF.scene;\n for (const [i, material] of gltf.materials.entries()) {\n const correlatedMaterial = gltfElementMap.get(material);\n if (correlatedMaterial != null) {\n this[$materials].push(new Material(onUpdate, gltf, material, i, true, this[$variantData], correlatedMaterial));\n }\n else {\n const elementArray = gltf['materials'] || [];\n const gltfMaterialDef = elementArray[i];\n // Loads the three.js material.\n const capturedMatIndex = i;\n const materialLoadCallback = async () => {\n const threeMaterial = await threeGLTF.parser.getDependency('material', capturedMatIndex);\n // Adds correlation, maps the variant gltf-def to the\n // three material set containing the variant material.\n const threeMaterialSet = new Set();\n gltfElementMap.set(gltfMaterialDef, threeMaterialSet);\n threeMaterialSet.add(threeMaterial);\n return { set: threeMaterialSet, material: threeMaterial };\n };\n // Configures the material for lazy loading.\n this[$materials].push(new Material(onUpdate, gltf, gltfMaterialDef, i, false, this[$variantData], correlatedMaterial, new LazyLoader(gltf, gltfElementMap, gltfMaterialDef, materialLoadCallback)));\n }\n }\n // Creates a hierarchy of Nodes. Allows not just for switching which\n // material is applied to a mesh but also exposes a way to provide API\n // for switching materials and general assignment/modification.\n // Prepares for scene iteration.\n const parentMap = new Map();\n const nodeStack = new Array();\n for (const object of threeGLTF.scene.children) {\n nodeStack.push(object);\n }\n // Walks the hierarchy and creates a node tree.\n while (nodeStack.length > 0) {\n const object = nodeStack.pop();\n let node = null;\n if (object instanceof Mesh) {\n node = new PrimitiveNode(object, this.materials, this[$variantData], correlatedSceneGraph);\n this[$primitivesList].push(node);\n }\n else {\n node = new Node$1(object.name);\n }\n const parent = parentMap.get(object);\n if (parent != null) {\n parent[$children].push(node);\n }\n else {\n this[$roots].push(node);\n }\n this[$hierarchy].push(node);\n for (const child of object.children) {\n nodeStack.push(child);\n parentMap.set(object, node);\n }\n }\n }\n /**\n * Materials are listed in the order of the GLTF materials array, plus a\n * default material at the end if one is used.\n *\n * TODO(#1003): How do we handle non-active scenes?\n */\n get materials() {\n return this[$materials];\n }\n [(_a = $materials, _b = $hierarchy, _c = $roots, _d = $primitivesList, _e = $modelOnUpdate, _f = $variantData, $availableVariants)]() {\n const variants = Array.from(this[$variantData].values());\n variants.sort((a, b) => {\n return a.index - b.index;\n });\n return variants.map((data) => {\n return data.name;\n });\n }\n getMaterialByName(name) {\n const matches = this[$materials].filter(material => {\n return material.name === name;\n });\n if (matches.length > 0) {\n return matches[0];\n }\n return null;\n }\n /**\n * Intersects a ray with the Model and returns a list of materials whose\n * objects were intersected.\n */\n [$materialsFromPoint](raycaster) {\n const hits = raycaster.intersectObject(this[$threeScene], true);\n // Map the object hits to primitives and then to the active material of\n // the primitive.\n return hits.map((hit) => {\n const found = this[$hierarchy].find((node) => {\n if (node instanceof PrimitiveNode) {\n const primitive = node;\n if (primitive.mesh === hit.object) {\n return true;\n }\n }\n return false;\n });\n if (found != null) {\n return found.getActiveMaterial();\n }\n return null;\n });\n }\n /**\n * Intersects a ray with the Model and returns the first material whose\n * object was intersected.\n */\n [$materialFromPoint](raycaster) {\n const materials = this[$materialsFromPoint](raycaster);\n if (materials.length > 0) {\n return materials[0];\n }\n return null;\n }\n /**\n * Switches model variant to the variant name provided, or switches to\n * default/initial materials if 'null' is provided.\n */\n async [$switchVariant](variantName) {\n for (const primitive of this[$primitivesList]) {\n await primitive.enableVariant(variantName);\n }\n for (const material of this.materials) {\n material[$setActive](false);\n }\n // Marks the materials that are now in use after the variant switch.\n for (const primitive of this[$primitivesList]) {\n this.materials[primitive.getActiveMaterial().index][$setActive](true);\n }\n }\n async [$prepareVariantsForExport]() {\n const promises = new Array();\n for (const primitive of this[$primitivesList]) {\n promises.push(primitive.instantiateVariants());\n }\n await Promise.all(promises);\n }\n [$cloneMaterial](index, newMaterialName) {\n const material = this.materials[index];\n if (!material.isLoaded) {\n console.error(`Cloning an unloaded material,\n call 'material.ensureLoaded() before cloning the material.`);\n }\n const threeMaterialSet = material[$correlatedObjects];\n // clones the gltf material data and updates the material name.\n const gltfSourceMaterial = JSON.parse(JSON.stringify(material[$sourceObject]));\n gltfSourceMaterial.name = newMaterialName;\n // Adds the source material clone to the gltf def.\n const gltf = this[$correlatedSceneGraph].gltf;\n gltf.materials.push(gltfSourceMaterial);\n const clonedSet = new Set();\n for (const [i, threeMaterial] of threeMaterialSet.entries()) {\n const clone = threeMaterial.clone();\n clone.name =\n newMaterialName + (threeMaterialSet.size > 1 ? '_inst' + i : '');\n clonedSet.add(clone);\n }\n const clonedMaterial = new Material(this[$modelOnUpdate], this[$correlatedSceneGraph].gltf, gltfSourceMaterial, this[$materials].length, false, // Cloned as inactive.\n this[$variantData], clonedSet);\n this[$materials].push(clonedMaterial);\n return clonedMaterial;\n }\n createMaterialInstanceForVariant(originalMaterialIndex, newMaterialName, variantName, activateVariant = true) {\n let variantMaterialInstance = null;\n for (const primitive of this[$primitivesList]) {\n const variantData = this[$variantData].get(variantName);\n // Skips the primitive if the variant already exists.\n if (variantData != null && primitive.variantInfo.has(variantData.index)) {\n continue;\n }\n // Skips the primitive if the source/original material does not exist.\n if (primitive.getMaterial(originalMaterialIndex) == null) {\n continue;\n }\n if (!this.hasVariant(variantName)) {\n this.createVariant(variantName);\n }\n if (variantMaterialInstance == null) {\n variantMaterialInstance =\n this[$cloneMaterial](originalMaterialIndex, newMaterialName);\n }\n primitive.addVariant(variantMaterialInstance, variantName);\n }\n if (activateVariant && variantMaterialInstance != null) {\n variantMaterialInstance[$setActive](true);\n this.materials[originalMaterialIndex][$setActive](false);\n for (const primitive of this[$primitivesList]) {\n primitive.enableVariant(variantName);\n }\n }\n return variantMaterialInstance;\n }\n createVariant(variantName) {\n if (!this[$variantData].has(variantName)) {\n // Adds the name if it's not already in the list.\n this[$variantData].set(variantName, { name: variantName, index: this[$variantData].size });\n }\n else {\n console.warn(`Variant '${variantName}'' already exists`);\n }\n }\n hasVariant(variantName) {\n return this[$variantData].has(variantName);\n }\n setMaterialToVariant(materialIndex, targetVariantName) {\n if (this[$availableVariants]().find(name => name === targetVariantName) ==\n null) {\n console.warn(`Can't add material to '${targetVariantName}', the variant does not exist.'`);\n return;\n }\n if (materialIndex < 0 || materialIndex >= this.materials.length) {\n console.error(`setMaterialToVariant(): materialIndex is out of bounds.`);\n return;\n }\n for (const primitive of this[$primitivesList]) {\n const material = primitive.getMaterial(materialIndex);\n // Ensures the material exists on the primitive before setting it to a\n // variant.\n if (material != null) {\n primitive.addVariant(material, targetVariantName);\n }\n }\n }\n updateVariantName(currentName, newName) {\n const variantData = this[$variantData].get(currentName);\n if (variantData == null) {\n return;\n }\n variantData.name = newName;\n this[$variantData].set(newName, variantData);\n this[$variantData].delete(currentName);\n }\n deleteVariant(variantName) {\n const variant = this[$variantData].get(variantName);\n if (variant == null) {\n return;\n }\n for (const material of this.materials) {\n if (material.hasVariant(variantName)) {\n material[$variantSet].delete(variant.index);\n }\n }\n for (const primitive of this[$primitivesList]) {\n primitive.deleteVariant(variant.index);\n }\n this[$variantData].delete(variantName);\n }\n}\n\n/* @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nconst $currentGLTF = Symbol('currentGLTF');\nconst $model = Symbol('model');\nconst $getOnUpdateMethod = Symbol('getOnUpdateMethod');\nconst $textureLoader = Symbol('textureLoader');\nconst $originalGltfJson = Symbol('originalGltfJson');\n/**\n * SceneGraphMixin manages exposes a model API in order to support operations on\n * the scene graph.\n */\nconst SceneGraphMixin = (ModelViewerElement) => {\n var _a, _b, _c, _d;\n class SceneGraphModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this[_a] = undefined;\n this[_b] = null;\n this[_c] = new TextureLoader();\n this[_d] = null;\n this.variantName = null;\n this.orientation = '0 0 0';\n this.scale = '1 1 1';\n }\n // Scene-graph API:\n /** @export */\n get model() {\n return this[$model];\n }\n get availableVariants() {\n return this.model ? this.model[$availableVariants]() : [];\n }\n /**\n * Returns a deep copy of the gltf JSON as loaded. It will not reflect\n * changes to the scene-graph, nor will editing it have any effect.\n */\n get originalGltfJson() {\n return this[$originalGltfJson];\n }\n [(_a = $model, _b = $currentGLTF, _c = $textureLoader, _d = $originalGltfJson, $getOnUpdateMethod)]() {\n return () => {\n this[$needsRender]();\n };\n }\n async createTexture(uri, type = 'image/png') {\n const currentGLTF = this[$currentGLTF];\n const texture = await new Promise((resolve) => this[$textureLoader].load(uri, resolve));\n if (!currentGLTF || !texture) {\n return null;\n }\n // Applies default settings.\n texture.encoding = sRGBEncoding;\n texture.wrapS = RepeatWrapping;\n texture.wrapT = RepeatWrapping;\n texture.flipY = false;\n texture.userData.mimeType = type;\n return new Texture(this[$getOnUpdateMethod](), texture);\n }\n async updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('variantName')) {\n const threeGLTF = this[$currentGLTF];\n const { variantName } = this;\n if (threeGLTF != null) {\n await this[$model][$switchVariant](variantName);\n this[$needsRender]();\n this.dispatchEvent(new CustomEvent('variant-applied'));\n }\n }\n if (changedProperties.has('orientation') ||\n changedProperties.has('scale')) {\n const { modelContainer } = this[$scene];\n const orientation = parseExpressions(this.orientation)[0]\n .terms;\n const roll = normalizeUnit(orientation[0]).number;\n const pitch = normalizeUnit(orientation[1]).number;\n const yaw = normalizeUnit(orientation[2]).number;\n modelContainer.quaternion.setFromEuler(new Euler(pitch, yaw, roll, 'YXZ'));\n const scale = parseExpressions(this.scale)[0]\n .terms;\n modelContainer.scale.set(scale[0].number, scale[1].number, scale[2].number);\n this[$scene].updateBoundingBox();\n this[$scene].updateShadow();\n this[$renderer].arRenderer.onUpdateScene();\n this[$needsRender]();\n }\n }\n [$onModelLoad]() {\n super[$onModelLoad]();\n const { currentGLTF } = this[$scene];\n if (currentGLTF != null) {\n const { correlatedSceneGraph } = currentGLTF;\n if (correlatedSceneGraph != null &&\n currentGLTF !== this[$currentGLTF]) {\n this[$model] =\n new Model(correlatedSceneGraph, this[$getOnUpdateMethod]());\n this[$originalGltfJson] =\n JSON.parse(JSON.stringify(correlatedSceneGraph.gltf));\n }\n // KHR_materials_variants extension spec:\n // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_variants\n if ('variants' in currentGLTF.userData) {\n this.requestUpdate('variantName');\n }\n }\n this[$currentGLTF] = currentGLTF;\n // TODO: remove this event, as it is synonymous with the load event.\n this.dispatchEvent(new CustomEvent('scene-graph-ready'));\n }\n /** @export */\n async exportScene(options) {\n const scene = this[$scene];\n return new Promise(async (resolve) => {\n // Defaults\n const opts = {\n binary: true,\n onlyVisible: true,\n maxTextureSize: Infinity,\n forcePowerOfTwoTextures: false,\n includeCustomExtensions: false,\n embedImages: true\n };\n Object.assign(opts, options);\n // Not configurable\n opts.animations = scene.animations;\n opts.truncateDrawRange = true;\n const shadow = scene.shadow;\n let visible = false;\n // Remove shadow from export\n if (shadow != null) {\n visible = shadow.visible;\n shadow.visible = false;\n }\n await this[$model][$prepareVariantsForExport]();\n const exporter = new GLTFExporter()\n .register((writer) => new GLTFExporterMaterialsVariantsExtension(writer));\n exporter.parse(scene.modelContainer.children[0], (gltf) => {\n return resolve(new Blob([opts.binary ? gltf : JSON.stringify(gltf)], {\n type: opts.binary ? 'application/octet-stream' :\n 'application/json'\n }));\n }, opts);\n if (shadow != null) {\n shadow.visible = visible;\n }\n });\n }\n materialFromPoint(pixelX, pixelY) {\n const scene = this[$scene];\n const ndcCoords = scene.getNDC(pixelX, pixelY);\n scene.raycaster.setFromCamera(ndcCoords, scene.getCamera());\n return this[$model][$materialFromPoint](scene.raycaster);\n }\n }\n __decorate$1([\n e$3({ type: String, attribute: 'variant-name' })\n ], SceneGraphModelViewerElement.prototype, \"variantName\", void 0);\n __decorate$1([\n e$3({ type: String, attribute: 'orientation' })\n ], SceneGraphModelViewerElement.prototype, \"orientation\", void 0);\n __decorate$1([\n e$3({ type: String, attribute: 'scale' })\n ], SceneGraphModelViewerElement.prototype, \"scale\", void 0);\n return SceneGraphModelViewerElement;\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof undefined === \"function\") r = undefined(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// How much the model will rotate per\n// second in radians:\nconst DEFAULT_ROTATION_SPEED = Math.PI / 32;\nconst AUTO_ROTATE_DELAY_DEFAULT = 3000;\nconst rotationRateIntrinsics = {\n basis: [degreesToRadians(numberNode(DEFAULT_ROTATION_SPEED, 'rad'))],\n keywords: { auto: [null] }\n};\nconst $autoRotateStartTime = Symbol('autoRotateStartTime');\nconst $radiansPerSecond = Symbol('radiansPerSecond');\nconst $syncRotationRate = Symbol('syncRotationRate');\nconst $onCameraChange = Symbol('onCameraChange');\nconst StagingMixin = (ModelViewerElement) => {\n var _a, _b, _c;\n class StagingModelViewerElement extends ModelViewerElement {\n constructor() {\n super(...arguments);\n this.autoRotate = false;\n this.autoRotateDelay = AUTO_ROTATE_DELAY_DEFAULT;\n this.rotationPerSecond = 'auto';\n this[_a] = performance.now();\n this[_b] = 0;\n this[_c] = (event) => {\n if (!this.autoRotate) {\n return;\n }\n if (event.detail.source === 'user-interaction') {\n this[$autoRotateStartTime] = performance.now();\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('camera-change', this[$onCameraChange]);\n this[$autoRotateStartTime] = performance.now();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('camera-change', this[$onCameraChange]);\n this[$autoRotateStartTime] = performance.now();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('autoRotate')) {\n this[$autoRotateStartTime] = performance.now();\n }\n }\n [(_a = $autoRotateStartTime, _b = $radiansPerSecond, $syncRotationRate)](style) {\n this[$radiansPerSecond] = style[0];\n }\n [$tick](time, delta) {\n super[$tick](time, delta);\n if (!this.autoRotate || !this[$hasTransitioned]() ||\n this[$renderer].isPresenting) {\n return;\n }\n const rotationDelta = Math.min(delta, time - this[$autoRotateStartTime] - this.autoRotateDelay);\n if (rotationDelta > 0) {\n this[$scene].yaw = this.turntableRotation +\n this[$radiansPerSecond] * rotationDelta * 0.001;\n }\n }\n get turntableRotation() {\n return this[$scene].yaw;\n }\n resetTurntableRotation(theta = 0) {\n this[$scene].yaw = theta;\n }\n }\n _c = $onCameraChange;\n __decorate([\n e$3({ type: Boolean, attribute: 'auto-rotate' })\n ], StagingModelViewerElement.prototype, \"autoRotate\", void 0);\n __decorate([\n e$3({ type: Number, attribute: 'auto-rotate-delay' })\n ], StagingModelViewerElement.prototype, \"autoRotateDelay\", void 0);\n __decorate([\n style({ intrinsics: rotationRateIntrinsics, updateHandler: $syncRotationRate }),\n e$3({ type: String, attribute: 'rotation-per-second' })\n ], StagingModelViewerElement.prototype, \"rotationPerSecond\", void 0);\n return StagingModelViewerElement;\n};\n\n/**\n * This mixin function is designed to be applied to a class that inherits\n * from HTMLElement. It makes it easy for a custom element to coordinate with\n * the :focus-visible polyfill.\n *\n * NOTE(cdata): The code here was adapted from an example proposed with the\n * introduction of ShadowDOM support in the :focus-visible polyfill.\n *\n * @see https://github.com/WICG/focus-visible/pull/196\n * @param {Function} SuperClass The base class implementation to decorate with\n * implementation that coordinates with the :focus-visible polyfill\n */\nconst FocusVisiblePolyfillMixin = (SuperClass) => {\n var _a;\n const coordinateWithPolyfill = (instance) => {\n // If there is no shadow root, there is no need to coordinate with\n // the polyfill. If we already coordinated with the polyfill, we can\n // skip subsequent invokcations:\n if (instance.shadowRoot == null ||\n instance.hasAttribute('data-js-focus-visible')) {\n return () => { };\n }\n // The polyfill might already be loaded. If so, we can apply it to\n // the shadow root immediately:\n if (self.applyFocusVisiblePolyfill) {\n self.applyFocusVisiblePolyfill(instance.shadowRoot);\n }\n else {\n const coordinationHandler = () => {\n self.applyFocusVisiblePolyfill(instance.shadowRoot);\n };\n // Otherwise, wait for the polyfill to be loaded lazily. It might\n // never be loaded, but if it is then we can apply it to the\n // shadow root at the appropriate time by waiting for the ready\n // event:\n self.addEventListener('focus-visible-polyfill-ready', coordinationHandler, { once: true });\n return () => {\n self.removeEventListener('focus-visible-polyfill-ready', coordinationHandler);\n };\n }\n return () => { };\n };\n const $endPolyfillCoordination = Symbol('endPolyfillCoordination');\n // IE11 doesn't natively support custom elements or JavaScript class\n // syntax The mixin implementation assumes that the user will take the\n // appropriate steps to support both:\n class FocusVisibleCoordinator extends SuperClass {\n constructor() {\n super(...arguments);\n this[_a] = null;\n }\n // Attempt to coordinate with the polyfill when connected to the\n // document:\n connectedCallback() {\n super.connectedCallback && super.connectedCallback();\n if (this[$endPolyfillCoordination] == null) {\n this[$endPolyfillCoordination] = coordinateWithPolyfill(this);\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback && super.disconnectedCallback();\n // It's important to remove the polyfill event listener when we\n // disconnect, otherwise we will leak the whole element via window:\n if (this[$endPolyfillCoordination] != null) {\n this[$endPolyfillCoordination]();\n this[$endPolyfillCoordination] = null;\n }\n }\n }\n _a = $endPolyfillCoordination;\n return FocusVisibleCoordinator;\n};\n\n/* @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Uncomment these lines to export PMREM textures in Glitch:\n// export {default as TextureUtils} from './three-components/TextureUtils';\n// export * from 'three';\nconst ModelViewerElement = AnnotationMixin(SceneGraphMixin(StagingMixin(EnvironmentMixin(ControlsMixin(ARMixin(LoadingMixin(AnimationMixin(FocusVisiblePolyfillMixin(ModelViewerElementBase)))))))));\ncustomElements.define('model-viewer', ModelViewerElement);\n\nexport { ModelViewerElement };\n//# sourceMappingURL=model-viewer.js.map\n","import { useEffect, useRef, useState } from 'react';\nimport '@google/model-viewer';\nimport './index.less';\n\nconst ModelViewer = ({ modelUrl, environment, width, height, nftCard = false, canDestory }) => {\n //组件状态属性\n const [progress, setProgress] = useState(0);\n const [autoRotate, setAutoRotate] = useState('0.18rad');\n const [scale, setScale] = useState(1);\n const [animation, setAnimation] = useState(2010);\n const [loadTime, setLoadTime] = useState(0);\n\n const refModel = useRef();\n\n useEffect(() => {\n const model = refModel.current;\n model.addEventListener('progress', (e) => {\n setProgress(e.detail.totalProgress * 100);\n });\n if (!nftCard && 'disable-zoom' in model.attributes) {\n model.attributes.removeNamedItem('disable-zoom');\n }\n\n if (canDestory) canDestory(false);\n }, []);\n\n useEffect(() => {\n if (loadTime >= 100) return;\n setTimeout(() => {\n setLoadTime(new Date().getTime());\n }, 100);\n }, [loadTime]);\n\n //动画\n const easeOutElastic = (x) => {\n const c4 = (2 * Math.PI) / 3;\n return x === 0\n ? 0\n : x === 1\n ? 1\n : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1;\n };\n\n useEffect(() => {\n if (animation <= 2000) {\n setScale(easeOutElastic(animation / 1000 / 2));\n setTimeout(() => {\n setAnimation(animation + 10);\n }, 10);\n }\n }, [animation]);\n\n useEffect(() => {\n if (progress === 100) {\n if (canDestory) canDestory(true);\n setTimeout(() => {\n setAnimation(0);\n }, 300);\n }\n }, [progress]);\n\n return (\n setAutoRotate('0rad')}\n onMouseLeave={() => setAutoRotate('0.18rad')}\n >\n \n \n \n );\n};\n\nexport default ModelViewer;\n","import { useEffect, useState } from 'react';\nimport ModelViewer from '../ModelViewer';\nimport './index.less';\n\nlet clickTime = 0;\n\nconst NftViewer = ({ metadata, origin = false, thumb = false, onClick = () => 1 }) => {\n let [displayUrl, setDisplayUrl] = useState();\n let [hovered, setHovered] = useState(false);\n let [modelLoaded, setModelLoaded] = useState(true);\n\n const handleMouseDown = () => {\n clickTime = new Date().getTime();\n };\n\n const handleMouseUp = () => {\n let now = new Date().getTime();\n if (now - clickTime < 300 && onClick) {\n onClick();\n setHovered(false);\n }\n };\n\n useEffect(() => {\n if (origin) {\n setDisplayUrl(metadata.url);\n setHovered(true);\n } else {\n setDisplayUrl(metadata.thumb ? metadata.thumb : metadata.url);\n }\n }, [metadata]);\n\n return (\n setHovered(!thumb)}\n onMouseLeave={() => setHovered(origin)}\n >\n {metadata.url === '' ? null : metadata.mimeType === 'video' && hovered ? (\n e.preventDefault()}\n >\n ) : (metadata.mimeType === '3dmodel' && hovered) || !modelLoaded ? (\n setModelLoaded(value)}\n />\n ) : (\n \"\"\n )}\n \n );\n};\n\nexport default NftViewer;\n","import { Principal } from '@dfinity/principal';\nimport { Buffer } from 'buffer';\nimport { from32bits, to32bits } from './bit';\nimport { toHexString } from './hex';\n\nconst padding = Buffer.from('\\x0Atid');\n\nexport const tokenIdentifier = (principal: string, index: number): string => {\n const array = new Uint8Array([\n ...padding,\n ...Principal.fromText(principal).toUint8Array(),\n ...to32bits(index),\n ]);\n return Principal.fromUint8Array(array).toText();\n};\n\nexport const decodeTokenId = (tid: string) => {\n var p = [...Principal.fromText(tid).toUint8Array()];\n var _padding = p.splice(0, 4);\n if (toHexString(new Uint8Array(_padding)) !== toHexString(padding)) {\n return {\n tokenIndex: 0,\n canisterId: tid,\n token: tokenIdentifier(tid, 0),\n };\n } else {\n return {\n tokenIndex: from32bits(p.splice(-4)),\n canisterId: Principal.fromUint8Array(new Uint8Array(p)).toText(),\n token: tid,\n };\n }\n};\n","import { useEffect, useState } from 'react';\nimport { Card, DatePicker, Image, Input, message, Modal, Space, Table, Tabs, Tag } from 'antd';\nimport { SortOrder } from 'antd/lib/table/interface';\nimport { SearchOutlined } from '@ant-design/icons';\nimport { connect } from 'dva';\nimport moment from 'moment';\nimport NftViewer from '../../components/NftViewer';\nimport { createErc721Actor } from '../../service';\nimport { audit, listAllNFT } from '../../service/artist';\nimport { getAgent } from '../../utils/agent';\nimport { ab2str } from '../../utils/buffer';\nimport { timeToString } from '../../utils/icTime';\nimport { decodeTokenId, tokenIdentifier } from '../../utils/token';\nimport './index.less';\n\nlet allTokens: any[] = [];\nlet pending: any[] = [];\n\nconst AuditArtistNFT = (props: any) => {\n const { artistActor } = props.use_agent;\n\n const [tokens, setTokens] = useState([]);\n const [nameFilter, setNameFilter] = useState('');\n const [timeFilterStart, setTimeFilterStart] = useState(0);\n const [timeFilterEnd, setTimeFilterEnd] = useState(Infinity);\n const [detailModalVisible, setDetailModalVisible] = useState(false);\n const [chosenMetadata, setChosenMetadata] = useState();\n const [auditModalVisible, setAuditModalVisible] = useState(false);\n const [auditType, setAuditType] = useState<'pass' | 'reject' | 'delete'>();\n const [auditLoading, setAuditLoading] = useState(false);\n const [auditReason, setAuditReason] = useState('');\n\n useEffect(() => {\n getPendingTokens();\n }, []);\n\n const cmpTime = (a: any, b: any) => {\n return b.timestamp - a.timestamp;\n };\n\n const handleAudit = async () => {\n setAuditLoading(true);\n let res: any = {};\n if (auditType === 'delete') {\n res = await artistActor.delNFT([chosenMetadata.tokenIdentifier]);\n } else {\n try {\n res = await audit(artistActor)(\n chosenMetadata.tokenIdentifier,\n auditType === 'pass',\n auditReason,\n );\n } catch (err) {\n console.log(err);\n }\n }\n if ('ok' in res) {\n await getPendingTokens();\n message.success('Done');\n setAuditModalVisible(false);\n } else {\n message.error(res.err);\n }\n setAuditLoading(false);\n };\n\n const getPendingTokens = async () => {\n let finalMetadata: any[] = [];\n pending = await listAllNFT(artistActor)();\n const tokens = pending.map((item: any) => {\n return item[1];\n });\n let reflex: any = {};\n const anonymousAgent = await getAgent('anonymous', []);\n const collectionMap:Record = {};\n tokens.forEach((item: any, index: number) => {\n const { canisterId, tokenIndex } = decodeTokenId(item.tokenIdentifier);\n if (!(canisterId in collectionMap)) {\n collectionMap[canisterId] = [tokenIndex];\n } else {\n collectionMap[canisterId].push(tokenIndex);\n }\n reflex[item.tokenIdentifier] = item;\n });\n const collections = Object.keys(collectionMap);\n\n const collectionActors: any[] = await Promise.all(\n collections.map((item) => createErc721Actor(anonymousAgent)(item)),\n );\n for (let index = 0; index < collections.length; index++) {\n const getTokens = await collectionActors[index].getTokensByIds(\n collectionMap[collections[index]],\n );\n getTokens.map((item: any) => {\n const metadata = JSON.parse(ab2str(item[1].nonfungible.metadata[0]));\n if (!('name' in metadata)) {\n metadata.name = 'Unknown #' + item[0];\n }\n if (!('timestamp' in metadata)) {\n metadata.timestamp = 0;\n }\n\n metadata.tokenIdentifier = tokenIdentifier(collections[index], item[0]);\n metadata.status = Object.keys(reflex[metadata.tokenIdentifier].result)[0];\n finalMetadata.push(metadata);\n });\n }\n finalMetadata.sort(cmpTime);\n finalMetadata.forEach((item: any, index: number) => {\n item.order = index + 1;\n });\n setTokens(finalMetadata);\n allTokens = finalMetadata;\n };\n\n const handleNameFilter = () => {\n const newTokens = allTokens.filter((value) => {\n if (value.name.toLowerCase().indexOf(nameFilter.toLowerCase()) !== -1) {\n return value;\n }\n });\n setTokens(newTokens);\n };\n\n const handleDateFilter = () => {\n const newTokens = allTokens.filter((value) => {\n if (value.timestamp >= timeFilterStart && value.timestamp <= timeFilterEnd) {\n return value;\n }\n });\n setTokens(newTokens);\n };\n\n useEffect(() => {\n handleDateFilter();\n }, [timeFilterStart, timeFilterEnd]);\n\n const columns = [\n {\n title: '#',\n dataIndex: 'order',\n key: 'order',\n width: '80px',\n },\n {\n title: 'Name',\n dataIndex: 'name',\n key: 'name',\n width: '200px',\n ellipsis: true,\n },\n {\n title: 'Image',\n key: 'image',\n render: (_: any, metadata: any) => {\n return (\n
\n \n
\n );\n },\n },\n {\n title: 'Create Time',\n dataIndex: 'timestamp',\n key: 'time',\n sorter: (a: any, b: any) => a.timestamp - b.timestamp,\n sortDirections: ['ascend', 'descend', 'ascend'] as SortOrder[],\n defaultSortOrder: 'descend' as SortOrder,\n render: (time: number) => {\n return timeToString(BigInt(time * 1e6));\n },\n },\n {\n title: 'CateGory',\n dataIndex: 'category',\n key: 'category',\n },\n {\n title: 'Status',\n dataIndex: 'status',\n key: 'status',\n onFilter: (value: any, record: any) => record.status === value,\n filters: [\n {\n text: 'Pending',\n value: 'pending',\n },\n {\n text: 'Pass',\n value: 'pass',\n },\n {\n text: 'Reject',\n value: 'reject',\n },\n {\n text: 'Cancel',\n value: 'cancel',\n },\n ],\n render: (value: string) => {\n return (\n \n {value}\n \n );\n },\n },\n {\n title: 'Action',\n key: 'action',\n render: (_: any, metadata: any) => {\n return (\n \n {\n setChosenMetadata(metadata);\n setDetailModalVisible(true);\n }}\n >\n Detail\n \n {metadata.status === 'pending' ? (\n <>\n {\n setChosenMetadata(metadata);\n setAuditType('pass');\n setAuditModalVisible(true);\n }}\n >\n Pass\n \n {\n setChosenMetadata(metadata);\n setAuditType('reject');\n setAuditModalVisible(true);\n }}\n >\n Reject\n \n \n ) : null}\n {metadata.status === 'pass' ? (\n <>\n {\n setChosenMetadata(metadata);\n setAuditType('delete');\n setAuditModalVisible(true);\n }}\n >\n Delete\n \n \n ) : null}\n \n );\n },\n },\n ];\n\n return (\n \n
\n
Time:
\n setTimeFilterStart(e ? e : 0)} />\n ~\n setTimeFilterEnd(e ? e : Infinity)} />\n
NFT Name:
\n
\n }\n onChange={(e) => setNameFilter(e.target.value)}\n onPressEnter={handleNameFilter}\n />\n
\n
\n \n setDetailModalVisible(false)}\n >\n
\n \n
\n \n \n {chosenMetadata?.description}\n \n {chosenMetadata?.attributes ? (\n \n {chosenMetadata?.attributes.map((item: any) => (\n
\n
{item.trait_type}
\n
{item.value}
\n
\n ))}\n \n ) : null}\n
\n \n setAuditModalVisible(false)}\n onOk={handleAudit}\n confirmLoading={auditLoading}\n >\n

Are you sure to {auditType} this NFT?

\n {auditType === 'reject' ? (\n setAuditReason(e.target.value)}\n />\n ) : null}\n \n \n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(AuditArtistNFT);\n","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, Input, message, Select } from 'antd';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport { createErc721Actor, MyCollection, queryMyCollections } from '../../service';\nimport { getEnvs } from '../../utils/getEnvs';\nimport { tokenIdentifier } from '../../utils/token';\nimport './index.less';\n\nconst BatchApprove: FC = (props: any) => {\n const { dispatch } = props;\n const { shikuActor, agent, agentType, whitelist } = props.use_agent;\n\n const { Option } = Select;\n const [initialing, setInitialing] = useState(false);\n const [collectionInfo, setCollectionInfo] = useState({});\n const [myCollectionIds, setMyCollections] = useState([]);\n const [setting, setSetting] = useState(false);\n const [start, setStart] = useState(0);\n const [end, setEnd] = useState(0);\n\n const [target, setTarget] = useState('');\n\n const handleSelect = async (c: any) => {\n if (initialing === true) {\n return;\n }\n setCollectionInfo(JSON.parse(c));\n };\n\n const getCollection = async () => {\n setInitialing(true);\n const collections = await queryMyCollections(shikuActor)();\n if (collections.length === 0) {\n message.warn('用户尚未创建collection');\n } else {\n setMyCollections(collections);\n }\n setInitialing(false);\n };\n\n const handleFinish = async () => {\n if (start > end) {\n message.error('ileagel input index');\n return;\n }\n setSetting(true);\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist, collectionInfo],\n type: 'add',\n },\n }).then(() => {\n handleApproveAll(start, end);\n });\n };\n\n const handleApproveAll = async (start: number, end: number) => {\n if (agentType == null) return;\n setSetting(true);\n\n const erc721Actor = await createErc721Actor(agent)(collectionInfo);\n\n let approveNfts = [];\n for (let i = start; i <= end; i++) {\n approveNfts.push({\n token: tokenIdentifier(collectionInfo, i),\n subaccount: [],\n allowance: 1,\n spender: Principal.fromText(\n target === '' ? getEnvs().LAUNCHPAD_CANISTER_ID : target,\n ),\n });\n }\n if (approveNfts.length == 0) {\n message.error('no nft to approve');\n return;\n }\n //@ts-ignore\n const res = await erc721Actor.approveAll(approveNfts);\n setSetting(false);\n console.log(res);\n if (res.length == approveNfts.length) {\n message.success('done');\n } else {\n message.error('fail');\n }\n };\n\n return (\n \n
Batch Approve NFT
\n\n
\n
Collection/Canister ID
\n setCollectionInfo(e.target.value)} />\n
\n\n
\n
Tokens
\n
The index starts from 0
\n {\n setStart(Number(e.target.value));\n }}\n placeholder=\"start index\"\n />\n  ~{' '}\n {\n setEnd(Number(e.target.value));\n }}\n placeholder=\"end index\"\n />\n
\n\n
\n
To Principal/Canister ID
\n setTarget(e.target.value)} />\n
\n\n \n Approve\n \n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(BatchApprove);\n","// This icon file is generated automatically.\nvar UpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\" } }] }, \"name\": \"up\", \"theme\": \"outlined\" };\nexport default UpOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport UpOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar UpOutlined = function UpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: UpOutlinedSvg\n }));\n};\nUpOutlined.displayName = 'UpOutlined';\nexport default /*#__PURE__*/React.forwardRef(UpOutlined);","export function supportBigInt() {\n return typeof BigInt === 'function';\n}","import { supportBigInt } from './supportUtil';\n/**\n * Format string number to readable number\n */\nexport function trimNumber(numStr) {\n var str = numStr.trim();\n var negative = str.startsWith('-');\n if (negative) {\n str = str.slice(1);\n }\n str = str\n // Remove decimal 0. `1.000` => `1.`, `1.100` => `1.1`\n .replace(/(\\.\\d*[^0])0*$/, '$1')\n // Remove useless decimal. `1.` => `1`\n .replace(/\\.0*$/, '')\n // Remove integer 0. `0001` => `1`, 000.1' => `.1`\n .replace(/^0+/, '');\n if (str.startsWith('.')) {\n str = \"0\".concat(str);\n }\n var trimStr = str || '0';\n var splitNumber = trimStr.split('.');\n var integerStr = splitNumber[0] || '0';\n var decimalStr = splitNumber[1] || '0';\n if (integerStr === '0' && decimalStr === '0') {\n negative = false;\n }\n var negativeStr = negative ? '-' : '';\n return {\n negative: negative,\n negativeStr: negativeStr,\n trimStr: trimStr,\n integerStr: integerStr,\n decimalStr: decimalStr,\n fullStr: \"\".concat(negativeStr).concat(trimStr)\n };\n}\nexport function isE(number) {\n var str = String(number);\n return !Number.isNaN(Number(str)) && str.includes('e');\n}\n/**\n * [Legacy] Convert 1e-9 to 0.000000001.\n * This may lose some precision if user really want 1e-9.\n */\nexport function getNumberPrecision(number) {\n var numStr = String(number);\n if (isE(number)) {\n var precision = Number(numStr.slice(numStr.indexOf('e-') + 2));\n var decimalMatch = numStr.match(/\\.(\\d+)/);\n if (decimalMatch === null || decimalMatch === void 0 ? void 0 : decimalMatch[1]) {\n precision += decimalMatch[1].length;\n }\n return precision;\n }\n return numStr.includes('.') && validateNumber(numStr) ? numStr.length - numStr.indexOf('.') - 1 : 0;\n}\n/**\n * Convert number (includes scientific notation) to -xxx.yyy format\n */\nexport function num2str(number) {\n var numStr = String(number);\n if (isE(number)) {\n if (number > Number.MAX_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return String(supportBigInt() ? BigInt(number).toString() : Number.MIN_SAFE_INTEGER);\n }\n numStr = number.toFixed(getNumberPrecision(numStr));\n }\n return trimNumber(numStr).fullStr;\n}\nexport function validateNumber(num) {\n if (typeof num === 'number') {\n return !Number.isNaN(num);\n }\n // Empty\n if (!num) {\n return false;\n }\n return (\n // Normal type: 11.28\n /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(num) ||\n // Pre-number: 1.\n /^\\s*-?\\d+\\.\\s*$/.test(num) ||\n // Post-number: .1\n /^\\s*-?\\.\\d+\\s*$/.test(num)\n );\n}\nexport function getDecupleSteps(step) {\n var stepStr = typeof step === 'number' ? num2str(step) : trimNumber(step).fullStr;\n var hasPoint = stepStr.includes('.');\n if (!hasPoint) {\n return step + '0';\n }\n return trimNumber(stepStr.replace(/(\\d)\\.(\\d)/g, '$1$2.')).fullStr;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\n/* eslint-disable max-classes-per-file */\nimport { getNumberPrecision, isE, num2str, trimNumber, validateNumber } from './numberUtil';\nimport { supportBigInt } from './supportUtil';\n/**\n * We can remove this when IE not support anymore\n */\nexport var NumberDecimal = /*#__PURE__*/function () {\n function NumberDecimal(value) {\n _classCallCheck(this, NumberDecimal);\n this.origin = '';\n this.number = void 0;\n this.empty = void 0;\n if (!value && value !== 0 || !String(value).trim()) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n this.number = Number(value);\n }\n _createClass(NumberDecimal, [{\n key: \"negate\",\n value: function negate() {\n return new NumberDecimal(-this.toNumber());\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new NumberDecimal(value);\n }\n var target = Number(value);\n if (Number.isNaN(target)) {\n return this;\n }\n var number = this.number + target;\n // [Legacy] Back to safe integer\n if (number > Number.MAX_SAFE_INTEGER) {\n return new NumberDecimal(Number.MAX_SAFE_INTEGER);\n }\n if (number < Number.MIN_SAFE_INTEGER) {\n return new NumberDecimal(Number.MIN_SAFE_INTEGER);\n }\n var maxPrecision = Math.max(getNumberPrecision(this.number), getNumberPrecision(target));\n return new NumberDecimal(number.toFixed(maxPrecision));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.number);\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toNumber() === (target === null || target === void 0 ? void 0 : target.toNumber());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n return this.number;\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return num2str(this.number);\n }\n }]);\n return NumberDecimal;\n}();\nexport var BigIntDecimal = /*#__PURE__*/function () {\n /** BigInt will convert `0009` to `9`. We need record the len of decimal */\n\n function BigIntDecimal(value) {\n _classCallCheck(this, BigIntDecimal);\n this.origin = '';\n this.negative = void 0;\n this.integer = void 0;\n this.decimal = void 0;\n this.decimalLen = void 0;\n this.empty = void 0;\n this.nan = void 0;\n if (!value && value !== 0 || !String(value).trim()) {\n this.empty = true;\n return;\n }\n this.origin = String(value);\n // Act like Number convert\n if (value === '-') {\n this.nan = true;\n return;\n }\n var mergedValue = value;\n // We need convert back to Number since it require `toFixed` to handle this\n if (isE(mergedValue)) {\n mergedValue = Number(mergedValue);\n }\n mergedValue = typeof mergedValue === 'string' ? mergedValue : num2str(mergedValue);\n if (validateNumber(mergedValue)) {\n var trimRet = trimNumber(mergedValue);\n this.negative = trimRet.negative;\n var numbers = trimRet.trimStr.split('.');\n this.integer = BigInt(numbers[0]);\n var decimalStr = numbers[1] || '0';\n this.decimal = BigInt(decimalStr);\n this.decimalLen = decimalStr.length;\n } else {\n this.nan = true;\n }\n }\n _createClass(BigIntDecimal, [{\n key: \"getMark\",\n value: function getMark() {\n return this.negative ? '-' : '';\n }\n }, {\n key: \"getIntegerStr\",\n value: function getIntegerStr() {\n return this.integer.toString();\n }\n }, {\n key: \"getDecimalStr\",\n value: function getDecimalStr() {\n return this.decimal.toString().padStart(this.decimalLen, '0');\n }\n /**\n * Align BigIntDecimal with same decimal length. e.g. 12.3 + 5 = 1230000\n * This is used for add function only.\n */\n }, {\n key: \"alignDecimal\",\n value: function alignDecimal(decimalLength) {\n var str = \"\".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(decimalLength, '0'));\n return BigInt(str);\n }\n }, {\n key: \"negate\",\n value: function negate() {\n var clone = new BigIntDecimal(this.toString());\n clone.negative = !clone.negative;\n return clone;\n }\n }, {\n key: \"add\",\n value: function add(value) {\n if (this.isInvalidate()) {\n return new BigIntDecimal(value);\n }\n var offset = new BigIntDecimal(value);\n if (offset.isInvalidate()) {\n return this;\n }\n var maxDecimalLength = Math.max(this.getDecimalStr().length, offset.getDecimalStr().length);\n var myAlignedDecimal = this.alignDecimal(maxDecimalLength);\n var offsetAlignedDecimal = offset.alignDecimal(maxDecimalLength);\n var valueStr = (myAlignedDecimal + offsetAlignedDecimal).toString();\n // We need fill string length back to `maxDecimalLength` to avoid parser failed\n var _trimNumber = trimNumber(valueStr),\n negativeStr = _trimNumber.negativeStr,\n trimStr = _trimNumber.trimStr;\n var hydrateValueStr = \"\".concat(negativeStr).concat(trimStr.padStart(maxDecimalLength + 1, '0'));\n return new BigIntDecimal(\"\".concat(hydrateValueStr.slice(0, -maxDecimalLength), \".\").concat(hydrateValueStr.slice(-maxDecimalLength)));\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty() {\n return this.empty;\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return this.nan;\n }\n }, {\n key: \"isInvalidate\",\n value: function isInvalidate() {\n return this.isEmpty() || this.isNaN();\n }\n }, {\n key: \"equals\",\n value: function equals(target) {\n return this.toString() === (target === null || target === void 0 ? void 0 : target.toString());\n }\n }, {\n key: \"lessEquals\",\n value: function lessEquals(target) {\n return this.add(target.negate().toString()).toNumber() <= 0;\n }\n }, {\n key: \"toNumber\",\n value: function toNumber() {\n if (this.isNaN()) {\n return NaN;\n }\n return Number(this.toString());\n }\n }, {\n key: \"toString\",\n value: function toString() {\n var safe = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n if (!safe) {\n return this.origin;\n }\n if (this.isInvalidate()) {\n return '';\n }\n return trimNumber(\"\".concat(this.getMark()).concat(this.getIntegerStr(), \".\").concat(this.getDecimalStr())).fullStr;\n }\n }]);\n return BigIntDecimal;\n}();\nexport default function getMiniDecimal(value) {\n // We use BigInt here.\n // Will fallback to Number if not support.\n if (supportBigInt()) {\n return new BigIntDecimal(value);\n }\n return new NumberDecimal(value);\n}\n/**\n * Align the logic of toFixed to around like 1.5 => 2.\n * If set `cutOnly`, will just remove the over decimal part.\n */\nexport function toFixed(numStr, separatorStr, precision) {\n var cutOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (numStr === '') {\n return '';\n }\n var _trimNumber2 = trimNumber(numStr),\n negativeStr = _trimNumber2.negativeStr,\n integerStr = _trimNumber2.integerStr,\n decimalStr = _trimNumber2.decimalStr;\n var precisionDecimalStr = \"\".concat(separatorStr).concat(decimalStr);\n var numberWithoutDecimal = \"\".concat(negativeStr).concat(integerStr);\n if (precision >= 0) {\n // We will get last + 1 number to check if need advanced number\n var advancedNum = Number(decimalStr[precision]);\n if (advancedNum >= 5 && !cutOnly) {\n var advancedDecimal = getMiniDecimal(numStr).add(\"\".concat(negativeStr, \"0.\").concat('0'.repeat(precision)).concat(10 - advancedNum));\n return toFixed(advancedDecimal.toString(), separatorStr, precision, cutOnly);\n }\n if (precision === 0) {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(separatorStr).concat(decimalStr.padEnd(precision, '0').slice(0, precision));\n }\n if (precisionDecimalStr === '.0') {\n return numberWithoutDecimal;\n }\n return \"\".concat(numberWithoutDecimal).concat(precisionDecimalStr);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint-disable react/no-unknown-property */\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\nvar STEP_INTERVAL = 200;\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\nvar STEP_DELAY = 600;\nexport default function StepHandler(_ref) {\n var prefixCls = _ref.prefixCls,\n upNode = _ref.upNode,\n downNode = _ref.downNode,\n upDisabled = _ref.upDisabled,\n downDisabled = _ref.downDisabled,\n onStep = _ref.onStep;\n // ======================== Step ========================\n var stepTimeoutRef = React.useRef();\n var onStepRef = React.useRef();\n onStepRef.current = onStep;\n // We will interval update step when hold mouse down\n var onStepMouseDown = function onStepMouseDown(e, up) {\n e.preventDefault();\n onStepRef.current(up);\n // Loop step for interval\n function loopStep() {\n onStepRef.current(up);\n stepTimeoutRef.current = setTimeout(loopStep, STEP_INTERVAL);\n }\n // First time press will wait some time to trigger loop step update\n stepTimeoutRef.current = setTimeout(loopStep, STEP_DELAY);\n };\n var onStopStep = function onStopStep() {\n clearTimeout(stepTimeoutRef.current);\n };\n React.useEffect(function () {\n return onStopStep;\n }, []);\n // ======================= Render =======================\n if (isMobile()) {\n return null;\n }\n var handlerClassName = \"\".concat(prefixCls, \"-handler\");\n var upClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-up\"), _defineProperty({}, \"\".concat(handlerClassName, \"-up-disabled\"), upDisabled));\n var downClassName = classNames(handlerClassName, \"\".concat(handlerClassName, \"-down\"), _defineProperty({}, \"\".concat(handlerClassName, \"-down-disabled\"), downDisabled));\n var sharedHandlerProps = {\n unselectable: 'on',\n role: 'button',\n onMouseUp: onStopStep,\n onMouseLeave: onStopStep\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(handlerClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, true);\n },\n \"aria-label\": \"Increase Value\",\n \"aria-disabled\": upDisabled,\n className: upClassName\n }), upNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n })), /*#__PURE__*/React.createElement(\"span\", _extends({}, sharedHandlerProps, {\n onMouseDown: function onMouseDown(e) {\n onStepMouseDown(e, false);\n },\n \"aria-label\": \"Decrease Value\",\n \"aria-disabled\": downDisabled,\n className: downClassName\n }), downNode || /*#__PURE__*/React.createElement(\"span\", {\n unselectable: \"on\",\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n })));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"min\", \"max\", \"step\", \"defaultValue\", \"value\", \"disabled\", \"readOnly\", \"upHandler\", \"downHandler\", \"keyboard\", \"controls\", \"stringMode\", \"parser\", \"formatter\", \"precision\", \"decimalSeparator\", \"onChange\", \"onInput\", \"onPressEnter\", \"onStep\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport getMiniDecimal, { toFixed } from './utils/MiniDecimal';\nimport StepHandler from './StepHandler';\nimport { getNumberPrecision, num2str, getDecupleSteps, validateNumber } from './utils/numberUtil';\nimport useCursor from './hooks/useCursor';\nimport useFrame from './hooks/useFrame';\n/**\n * We support `stringMode` which need handle correct type when user call in onChange\n * format max or min value\n * 1. if isInvalid return null\n * 2. if precision is undefined, return decimal\n * 3. format with precision\n * I. if max > 0, round down with precision. Example: max= 3.5, precision=0 afterFormat: 3\n * II. if max < 0, round up with precision. Example: max= -3.5, precision=0 afterFormat: -4\n * III. if min > 0, round up with precision. Example: min= 3.5, precision=0 afterFormat: 4\n * IV. if min < 0, round down with precision. Example: max= -3.5, precision=0 afterFormat: -3\n */\nvar getDecimalValue = function getDecimalValue(stringMode, decimalValue) {\n if (stringMode || decimalValue.isEmpty()) {\n return decimalValue.toString();\n }\n return decimalValue.toNumber();\n};\nvar getDecimalIfValidate = function getDecimalIfValidate(value) {\n var decimal = getMiniDecimal(value);\n return decimal.isInvalidate() ? null : decimal;\n};\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input-number' : _props$prefixCls,\n className = props.className,\n style = props.style,\n min = props.min,\n max = props.max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n defaultValue = props.defaultValue,\n value = props.value,\n disabled = props.disabled,\n readOnly = props.readOnly,\n upHandler = props.upHandler,\n downHandler = props.downHandler,\n keyboard = props.keyboard,\n _props$controls = props.controls,\n controls = _props$controls === void 0 ? true : _props$controls,\n stringMode = props.stringMode,\n parser = props.parser,\n formatter = props.formatter,\n precision = props.precision,\n decimalSeparator = props.decimalSeparator,\n onChange = props.onChange,\n onInput = props.onInput,\n onPressEnter = props.onPressEnter,\n onStep = props.onStep,\n inputProps = _objectWithoutProperties(props, _excluded);\n var inputClassName = \"\".concat(prefixCls, \"-input\");\n var inputRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focus = _React$useState2[0],\n setFocus = _React$useState2[1];\n var userTypingRef = React.useRef(false);\n var compositionRef = React.useRef(false);\n var shiftKeyRef = React.useRef(false);\n // ============================ Value =============================\n // Real value control\n var _React$useState3 = React.useState(function () {\n return getMiniDecimal(value !== null && value !== void 0 ? value : defaultValue);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n decimalValue = _React$useState4[0],\n setDecimalValue = _React$useState4[1];\n function setUncontrolledDecimalValue(newDecimal) {\n if (value === undefined) {\n setDecimalValue(newDecimal);\n }\n }\n // ====================== Parser & Formatter ======================\n /**\n * `precision` is used for formatter & onChange.\n * It will auto generate by `value` & `step`.\n * But it will not block user typing.\n *\n * Note: Auto generate `precision` is used for legacy logic.\n * We should remove this since we already support high precision with BigInt.\n *\n * @param number Provide which number should calculate precision\n * @param userTyping Change by user typing\n */\n var getPrecision = React.useCallback(function (numStr, userTyping) {\n if (userTyping) {\n return undefined;\n }\n if (precision >= 0) {\n return precision;\n }\n return Math.max(getNumberPrecision(numStr), getNumberPrecision(step));\n }, [precision, step]);\n // >>> Parser\n var mergedParser = React.useCallback(function (num) {\n var numStr = String(num);\n if (parser) {\n return parser(numStr);\n }\n var parsedStr = numStr;\n if (decimalSeparator) {\n parsedStr = parsedStr.replace(decimalSeparator, '.');\n }\n // [Legacy] We still support auto convert `$ 123,456` to `123456`\n return parsedStr.replace(/[^\\w.-]+/g, '');\n }, [parser, decimalSeparator]);\n // >>> Formatter\n var inputValueRef = React.useRef('');\n var mergedFormatter = React.useCallback(function (number, userTyping) {\n if (formatter) {\n return formatter(number, {\n userTyping: userTyping,\n input: String(inputValueRef.current)\n });\n }\n var str = typeof number === 'number' ? num2str(number) : number;\n // User typing will not auto format with precision directly\n if (!userTyping) {\n var mergedPrecision = getPrecision(str, userTyping);\n if (validateNumber(str) && (decimalSeparator || mergedPrecision >= 0)) {\n // Separator\n var separatorStr = decimalSeparator || '.';\n str = toFixed(str, separatorStr, mergedPrecision);\n }\n }\n return str;\n }, [formatter, getPrecision, decimalSeparator]);\n // ========================== InputValue ==========================\n /**\n * Input text value control\n *\n * User can not update input content directly. It update with follow rules by priority:\n * 1. controlled `value` changed\n * * [SPECIAL] Typing like `1.` should not immediately convert to `1`\n * 2. User typing with format (not precision)\n * 3. Blur or Enter trigger revalidate\n */\n var _React$useState5 = React.useState(function () {\n var initValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;\n if (decimalValue.isInvalidate() && ['string', 'number'].includes(_typeof(initValue))) {\n return Number.isNaN(initValue) ? '' : initValue;\n }\n return mergedFormatter(decimalValue.toString(), false);\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n inputValue = _React$useState6[0],\n setInternalInputValue = _React$useState6[1];\n inputValueRef.current = inputValue;\n // Should always be string\n function setInputValue(newValue, userTyping) {\n setInternalInputValue(mergedFormatter(\n // Invalidate number is sometime passed by external control, we should let it go\n // Otherwise is controlled by internal interactive logic which check by userTyping\n // You can ref 'show limited value when input is not focused' test for more info.\n newValue.isInvalidate() ? newValue.toString(false) : newValue.toString(!userTyping), userTyping));\n }\n // >>> Max & Min limit\n var maxDecimal = React.useMemo(function () {\n return getDecimalIfValidate(max);\n }, [max, precision]);\n var minDecimal = React.useMemo(function () {\n return getDecimalIfValidate(min);\n }, [min, precision]);\n var upDisabled = React.useMemo(function () {\n if (!maxDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return maxDecimal.lessEquals(decimalValue);\n }, [maxDecimal, decimalValue]);\n var downDisabled = React.useMemo(function () {\n if (!minDecimal || !decimalValue || decimalValue.isInvalidate()) {\n return false;\n }\n return decimalValue.lessEquals(minDecimal);\n }, [minDecimal, decimalValue]);\n // Cursor controller\n var _useCursor = useCursor(inputRef.current, focus),\n _useCursor2 = _slicedToArray(_useCursor, 2),\n recordCursor = _useCursor2[0],\n restoreCursor = _useCursor2[1];\n // ============================= Data =============================\n /**\n * Find target value closet within range.\n * e.g. [11, 28]:\n * 3 => 11\n * 23 => 23\n * 99 => 28\n */\n var getRangeValue = function getRangeValue(target) {\n // target > max\n if (maxDecimal && !target.lessEquals(maxDecimal)) {\n return maxDecimal;\n }\n // target < min\n if (minDecimal && !minDecimal.lessEquals(target)) {\n return minDecimal;\n }\n return null;\n };\n /**\n * Check value is in [min, max] range\n */\n var isInRange = function isInRange(target) {\n return !getRangeValue(target);\n };\n /**\n * Trigger `onChange` if value validated and not equals of origin.\n * Return the value that re-align in range.\n */\n var triggerValueUpdate = function triggerValueUpdate(newValue, userTyping) {\n var updateValue = newValue;\n var isRangeValidate = isInRange(updateValue) || updateValue.isEmpty();\n // Skip align value when trigger value is empty.\n // We just trigger onChange(null)\n // This should not block user typing\n if (!updateValue.isEmpty() && !userTyping) {\n // Revert value in range if needed\n updateValue = getRangeValue(updateValue) || updateValue;\n isRangeValidate = true;\n }\n if (!readOnly && !disabled && isRangeValidate) {\n var numStr = updateValue.toString();\n var mergedPrecision = getPrecision(numStr, userTyping);\n if (mergedPrecision >= 0) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision));\n // When to fixed. The value may out of min & max range.\n // 4 in [0, 3.8] => 3.8 => 4 (toFixed)\n if (!isInRange(updateValue)) {\n updateValue = getMiniDecimal(toFixed(numStr, '.', mergedPrecision, true));\n }\n }\n // Trigger event\n if (!updateValue.equals(decimalValue)) {\n setUncontrolledDecimalValue(updateValue);\n onChange === null || onChange === void 0 ? void 0 : onChange(updateValue.isEmpty() ? null : getDecimalValue(stringMode, updateValue));\n // Reformat input if value is not controlled\n if (value === undefined) {\n setInputValue(updateValue, userTyping);\n }\n }\n return updateValue;\n }\n return decimalValue;\n };\n // ========================== User Input ==========================\n var onNextPromise = useFrame();\n // >>> Collect input value\n var collectInputValue = function collectInputValue(inputStr) {\n recordCursor();\n // Update inputValue incase input can not parse as number\n setInternalInputValue(inputStr);\n // Parse number\n if (!compositionRef.current) {\n var finalValue = mergedParser(inputStr);\n var finalDecimal = getMiniDecimal(finalValue);\n if (!finalDecimal.isNaN()) {\n triggerValueUpdate(finalDecimal, true);\n }\n }\n // Trigger onInput later to let user customize value if they want do handle something after onChange\n onInput === null || onInput === void 0 ? void 0 : onInput(inputStr);\n // optimize for chinese input experience\n // https://github.com/ant-design/ant-design/issues/8196\n onNextPromise(function () {\n var nextInputStr = inputStr;\n if (!parser) {\n nextInputStr = inputStr.replace(/。/g, '.');\n }\n if (nextInputStr !== inputStr) {\n collectInputValue(nextInputStr);\n }\n });\n };\n // >>> Composition\n var onCompositionStart = function onCompositionStart() {\n compositionRef.current = true;\n };\n var onCompositionEnd = function onCompositionEnd() {\n compositionRef.current = false;\n collectInputValue(inputRef.current.value);\n };\n // >>> Input\n var onInternalInput = function onInternalInput(e) {\n collectInputValue(e.target.value);\n };\n // ============================= Step =============================\n var onInternalStep = function onInternalStep(up) {\n var _inputRef$current;\n // Ignore step since out of range\n if (up && upDisabled || !up && downDisabled) {\n return;\n }\n // Clear typing status since it may caused by up & down key.\n // We should sync with input value.\n userTypingRef.current = false;\n var stepDecimal = getMiniDecimal(shiftKeyRef.current ? getDecupleSteps(step) : step);\n if (!up) {\n stepDecimal = stepDecimal.negate();\n }\n var target = (decimalValue || getMiniDecimal(0)).add(stepDecimal.toString());\n var updatedValue = triggerValueUpdate(target, false);\n onStep === null || onStep === void 0 ? void 0 : onStep(getDecimalValue(stringMode, updatedValue), {\n offset: shiftKeyRef.current ? getDecupleSteps(step) : step,\n type: up ? 'up' : 'down'\n });\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n };\n // ============================ Flush =============================\n /**\n * Flush current input content to trigger value change & re-formatter input if needed\n */\n var flushInputValue = function flushInputValue(userTyping) {\n var parsedValue = getMiniDecimal(mergedParser(inputValue));\n var formatValue = parsedValue;\n if (!parsedValue.isNaN()) {\n // Only validate value or empty value can be re-fill to inputValue\n // Reassign the formatValue within ranged of trigger control\n formatValue = triggerValueUpdate(parsedValue, userTyping);\n } else {\n formatValue = decimalValue;\n }\n if (value !== undefined) {\n // Reset back with controlled value first\n setInputValue(decimalValue, false);\n } else if (!formatValue.isNaN()) {\n // Reset input back since no validate value\n setInputValue(formatValue, false);\n }\n };\n // Solve the issue of the event triggering sequence when entering numbers in chinese input (Safari)\n var onBeforeInput = function onBeforeInput() {\n userTypingRef.current = true;\n };\n var onKeyDown = function onKeyDown(event) {\n var which = event.which,\n shiftKey = event.shiftKey;\n userTypingRef.current = true;\n if (shiftKey) {\n shiftKeyRef.current = true;\n } else {\n shiftKeyRef.current = false;\n }\n if (which === KeyCode.ENTER) {\n if (!compositionRef.current) {\n userTypingRef.current = false;\n }\n flushInputValue(false);\n onPressEnter === null || onPressEnter === void 0 ? void 0 : onPressEnter(event);\n }\n if (keyboard === false) {\n return;\n }\n // Do step\n if (!compositionRef.current && [KeyCode.UP, KeyCode.DOWN].includes(which)) {\n onInternalStep(KeyCode.UP === which);\n event.preventDefault();\n }\n };\n var onKeyUp = function onKeyUp() {\n userTypingRef.current = false;\n shiftKeyRef.current = false;\n };\n // >>> Focus & Blur\n var onBlur = function onBlur() {\n flushInputValue(false);\n setFocus(false);\n userTypingRef.current = false;\n };\n // ========================== Controlled ==========================\n // Input by precision\n useLayoutUpdateEffect(function () {\n if (!decimalValue.isInvalidate()) {\n setInputValue(decimalValue, false);\n }\n }, [precision]);\n // Input by value\n useLayoutUpdateEffect(function () {\n var newValue = getMiniDecimal(value);\n setDecimalValue(newValue);\n var currentParsedValue = getMiniDecimal(mergedParser(inputValue));\n // When user typing from `1.2` to `1.`, we should not convert to `1` immediately.\n // But let it go if user set `formatter`\n if (!newValue.equals(currentParsedValue) || !userTypingRef.current || formatter) {\n // Update value as effect\n setInputValue(newValue, userTypingRef.current);\n }\n }, [value]);\n // ============================ Cursor ============================\n useLayoutUpdateEffect(function () {\n if (formatter) {\n restoreCursor();\n }\n }, [inputValue]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-focused\"), focus), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-readonly\"), readOnly), _defineProperty(_classNames, \"\".concat(prefixCls, \"-not-a-number\"), decimalValue.isNaN()), _defineProperty(_classNames, \"\".concat(prefixCls, \"-out-of-range\"), !decimalValue.isInvalidate() && !isInRange(decimalValue)), _classNames)),\n style: style,\n onFocus: function onFocus() {\n setFocus(true);\n },\n onBlur: onBlur,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBeforeInput: onBeforeInput\n }, controls && /*#__PURE__*/React.createElement(StepHandler, {\n prefixCls: prefixCls,\n upNode: upHandler,\n downNode: downHandler,\n upDisabled: upDisabled,\n downDisabled: downDisabled,\n onStep: onInternalStep\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(inputClassName, \"-wrap\")\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: \"off\",\n role: \"spinbutton\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": decimalValue.isInvalidate() ? null : decimalValue.toString(),\n step: step\n }, inputProps, {\n ref: composeRef(inputRef, ref),\n className: inputClassName,\n value: inputValue,\n onChange: onInternalInput,\n disabled: disabled,\n readOnly: readOnly\n }))));\n});\nInputNumber.displayName = 'InputNumber';\nexport default InputNumber;","import { useRef } from 'react';\nimport warning from \"rc-util/es/warning\";\n/**\n * Keep input cursor in the correct position if possible.\n * Is this necessary since we have `formatter` which may mass the content?\n */\nexport default function useCursor(input, focused) {\n var selectionRef = useRef(null);\n function recordCursor() {\n // Record position\n try {\n var start = input.selectionStart,\n end = input.selectionEnd,\n value = input.value;\n var beforeTxt = value.substring(0, start);\n var afterTxt = value.substring(end);\n selectionRef.current = {\n start: start,\n end: end,\n value: value,\n beforeTxt: beforeTxt,\n afterTxt: afterTxt\n };\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n }\n /**\n * Restore logic:\n * 1. back string same\n * 2. start string same\n */\n function restoreCursor() {\n if (input && selectionRef.current && focused) {\n try {\n var value = input.value;\n var _selectionRef$current = selectionRef.current,\n beforeTxt = _selectionRef$current.beforeTxt,\n afterTxt = _selectionRef$current.afterTxt,\n start = _selectionRef$current.start;\n var startPos = value.length;\n if (value.endsWith(afterTxt)) {\n startPos = value.length - selectionRef.current.afterTxt.length;\n } else if (value.startsWith(beforeTxt)) {\n startPos = beforeTxt.length;\n } else {\n var beforeLastChar = beforeTxt[start - 1];\n var newIndex = value.indexOf(beforeLastChar, start - 1);\n if (newIndex !== -1) {\n startPos = newIndex + 1;\n }\n }\n input.setSelectionRange(startPos, startPos);\n } catch (e) {\n warning(false, \"Something warning of cursor restore. Please fire issue about this: \".concat(e.message));\n }\n }\n }\n return [recordCursor, restoreCursor];\n}","import { useRef, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\n/**\n * Always trigger latest once when call multiple time\n */\nexport default (function () {\n var idRef = useRef(0);\n var cleanUp = function cleanUp() {\n raf.cancel(idRef.current);\n };\n useEffect(function () {\n return cleanUp;\n }, []);\n return function (callback) {\n cleanUp();\n idRef.current = raf(function () {\n callback();\n });\n };\n});","import InputNumber from './InputNumber';\nexport default InputNumber;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport UpOutlined from \"@ant-design/icons/es/icons/UpOutlined\";\nimport classNames from 'classnames';\nimport RcInputNumber from 'rc-input-number';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nvar InputNumber = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocus = _React$useState2[1];\n var inputRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return inputRef.current;\n });\n var className = props.className,\n customizeSize = props.size,\n customDisabled = props.disabled,\n customizePrefixCls = props.prefixCls,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n prefix = props.prefix,\n _props$bordered = props.bordered,\n bordered = _props$bordered === void 0 ? true : _props$bordered,\n readOnly = props.readOnly,\n customStatus = props.status,\n controls = props.controls,\n others = __rest(props, [\"className\", \"size\", \"disabled\", \"prefixCls\", \"addonBefore\", \"addonAfter\", \"prefix\", \"bordered\", \"readOnly\", \"status\", \"controls\"]);\n var prefixCls = getPrefixCls('input-number', customizePrefixCls);\n var _useCompactItemContex = useCompactItemContext(prefixCls, direction),\n compactSize = _useCompactItemContex.compactSize,\n compactItemClassnames = _useCompactItemContex.compactItemClassnames;\n var upIcon = /*#__PURE__*/React.createElement(UpOutlined, {\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n });\n var downIcon = /*#__PURE__*/React.createElement(DownOutlined, {\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n });\n var controlsTemp = typeof controls === 'boolean' ? controls : undefined;\n if (_typeof(controls) === 'object') {\n upIcon = typeof controls.upIcon === 'undefined' ? upIcon : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-handler-up-inner\")\n }, controls.upIcon));\n downIcon = typeof controls.downIcon === 'undefined' ? downIcon : ( /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-handler-down-inner\")\n }, controls.downIcon));\n }\n var _useContext = useContext(FormItemInputContext),\n hasFeedback = _useContext.hasFeedback,\n contextStatus = _useContext.status,\n isFormItemInput = _useContext.isFormItemInput,\n feedbackIcon = _useContext.feedbackIcon;\n var mergedStatus = getMergedStatus(contextStatus, customStatus);\n var mergeSize = compactSize || customizeSize || size;\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n var inputNumberClass = classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-lg\"), mergeSize === 'large'), \"\".concat(prefixCls, \"-sm\"), mergeSize === 'small'), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-borderless\"), !bordered), \"\".concat(prefixCls, \"-in-form-item\"), isFormItemInput), getStatusClassNames(prefixCls, mergedStatus), compactItemClassnames, className);\n var element = /*#__PURE__*/React.createElement(RcInputNumber, _extends({\n ref: inputRef,\n disabled: mergedDisabled,\n className: inputNumberClass,\n upHandler: upIcon,\n downHandler: downIcon,\n prefixCls: prefixCls,\n readOnly: readOnly,\n controls: controlsTemp\n }, others));\n if (prefix != null || hasFeedback) {\n var affixWrapperCls = classNames(\"\".concat(prefixCls, \"-affix-wrapper\"), getStatusClassNames(\"\".concat(prefixCls, \"-affix-wrapper\"), mergedStatus, hasFeedback), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-affix-wrapper-focused\"), focused), \"\".concat(prefixCls, \"-affix-wrapper-disabled\"), props.disabled), \"\".concat(prefixCls, \"-affix-wrapper-sm\"), size === 'small'), \"\".concat(prefixCls, \"-affix-wrapper-lg\"), size === 'large'), \"\".concat(prefixCls, \"-affix-wrapper-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-affix-wrapper-readonly\"), readOnly), \"\".concat(prefixCls, \"-affix-wrapper-borderless\"), !bordered), \"\".concat(className), !(addonBefore || addonAfter) && className));\n element = /*#__PURE__*/React.createElement(\"div\", {\n className: affixWrapperCls,\n style: props.style,\n onMouseUp: function onMouseUp() {\n return inputRef.current.focus();\n }\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), cloneElement(element, {\n style: null,\n value: props.value,\n onFocus: function onFocus(event) {\n var _a;\n setFocus(true);\n (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, event);\n },\n onBlur: function onBlur(event) {\n var _a;\n setFocus(false);\n (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);\n }\n }), hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-suffix\")\n }, feedbackIcon));\n }\n if (addonBefore != null || addonAfter != null) {\n var wrapperClassName = \"\".concat(prefixCls, \"-group\");\n var addonClassName = \"\".concat(wrapperClassName, \"-addon\");\n var addonBeforeNode = addonBefore ? ( /*#__PURE__*/React.createElement(\"div\", {\n className: addonClassName\n }, addonBefore)) : null;\n var addonAfterNode = addonAfter ? /*#__PURE__*/React.createElement(\"div\", {\n className: addonClassName\n }, addonAfter) : null;\n var mergedWrapperClassName = classNames(\"\".concat(prefixCls, \"-wrapper\"), wrapperClassName, _defineProperty({}, \"\".concat(wrapperClassName, \"-rtl\"), direction === 'rtl'));\n var mergedGroupClassName = classNames(\"\".concat(prefixCls, \"-group-wrapper\"), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-group-wrapper-sm\"), size === 'small'), \"\".concat(prefixCls, \"-group-wrapper-lg\"), size === 'large'), \"\".concat(prefixCls, \"-group-wrapper-rtl\"), direction === 'rtl'), getStatusClassNames(\"\".concat(prefixCls, \"-group-wrapper\"), mergedStatus, hasFeedback), className);\n element = /*#__PURE__*/React.createElement(\"div\", {\n className: mergedGroupClassName,\n style: props.style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mergedWrapperClassName\n }, addonBeforeNode && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, addonBeforeNode))), cloneElement(element, {\n style: null,\n disabled: mergedDisabled\n }), addonAfterNode && ( /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n status: true,\n override: true\n }, addonAfterNode)))));\n }\n return element;\n});\nexport default InputNumber;","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.18.5';\nvar current_codepage = 1200, current_ansi = 1252;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array*/ { var o/*:Array*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nvar $cptable;\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nexport { set_cptable };\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") { throw \"wtf\"; }\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri*/ {\n\tvar out/*:Array*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports = {};\nexports.version = '1.2.1';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = {}); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array*/, Paths/*:Array*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array*/ = [], q/*:Array*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array*/, start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/, chkd/*:?Array*/)/*:SectorEntry*/ {\n\tvar buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array*/, dir_start/*:number*/, fat_addrs/*:Array*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array*/ = [], buf/*:Array*/ = [], buf_chain/*:Array*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array*/, Paths/*:Array*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\tif(!s) {\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n
*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nlet _fs = void 0;\nfunction set_fs(fs) { _fs = fs; }\nexport { set_fs };\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tvar lower = s.toLowerCase();\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches ... extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + ''; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array*/=[]; for(var i=s; i*/=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr/*:string*/)/*:CellAddress*/ { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell/*:CellAddress*/)/*:string*/ { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || (dense ? ([]/*:any*/) : ({}/*:any*/));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}/*:any*/));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts)/*:string*/ {\n\tvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array*/ = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = writextag('Types', null, {\n\t\t'xmlns': XMLNS.CT,\n\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t});\n\n\to = o.concat([\n\t\t['xml', 'application/xml'],\n\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t/* from test files */\n\t\t['bmp', 'image/bmp'],\n\t\t['png', 'image/png'],\n\t\t['gif', 'image/gif'],\n\t\t['emf', 'image/x-emf'],\n\t\t['wmf', 'image/x-wmf'],\n\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t['pdf', 'application/pdf'],\n\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t].map(function(x) {\n\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t}));\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest/*:Array >*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file/*:string*/, res/*:string*/, tag/*:?string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base/*:string*/, file/*:string*/) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nfunction write_meta_ods(/*:: wb: Workbook, opts: any*/)/*:string*/ {\n\treturn 'Sheet' + 'JS ' + XLSX.version + '';\n}\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ]; //.concat(PseudoPropsPairs);\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array*/ {\n\tvar merges/*:Array*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = $cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array*/ = [];\n\tvar colwidths/*:Array*/ = [];\n\tvar coldecimals/*:Array*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tmaxlen = Math.max(maxlen, String(col[j]).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[/*::String(*/current_ansi/*::)*/] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array*/ = [], colinfo/*:Array*/ = [], cw/*:Array*/ = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array*/, rows/*:Array*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/)/*:string*/ {\n\t\tvar preamble/*:Array*/ = [\"ID;PWXL;N;E\"], o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = /*#__PURE__*/(function() {\n\t\tvar push_field = function pf(o/*:Array*/, topic/*:string*/, v/*:number*/, n/*:number*/, s/*:string*/) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o/*:Array*/, type/*:number*/, v/*:any*/, s/*:string*/) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\t\tvar o/*:Array*/ = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array*/ = [], oo/*:Array*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ((o.dense ? [] : {})/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_LABEL },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array, string, Array]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array*/ {\n\tvar o/*:Array*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = /*#__PURE__*/(function() {\n\tfunction rtf_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar ws/*:Worksheet*/ = o.dense ? ([]/*:any*/) : ({}/*:any*/);\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}}/*:any*/);\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws/*:Worksheet*//*::, opts*/)/*:string*/ {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF_load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF_load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n metatype = 2;\n break;\n case \"\":\n case \"\":\n case \"\":\n break;\n case \"\":\n pass = false;\n break;\n case \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ']*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nfunction sheet_insert_comments(sheet, comments/*:Array*/, threaded/*:boolean*/, people/*:?Array*/) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array*/ = [];\n\tvar commentList/*:Array*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array*/ = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"\" + a + \"\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"\" + \"tc=\" + w.ID + \"\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"SheetJ5\"); }\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [];\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\telse d[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tts.push(c.t||\"\");\n\t\t});\n\t\to.push('');\n\t\tif(ts.length <= 1) o.push(writetag(\"t\", escapexml(ts[0]||\"\")));\n\t\telse {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t}\n\t\to.push('');\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '': case '': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '': pass = true; break;\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '
': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array*/ {\n\tvar out/*:Array*/ = [];\n\tvar authors/*:Array*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array>*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF_load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF_load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array*/, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z' && !cell.f) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array*/ = [], cref/*:?Array*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows/*:Array*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array*/ = [], r/*:Array*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array, string, ?string]*/ {\n\tvar col/*:Array*/ = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_theme(data/*:string*/, name/*:string*/, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\n\nfunction write_wb(wb, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data/*:number*/, name/*:string*/, opts, wb/*:Workbook*/, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data/*:SST*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data/*:Array*/, name/*:string*/, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\n\nfunction write_xlmeta(name/*:string*/) {\n\treturn (name.slice(-4)===\".bin\" ? write_xlmeta_bin : write_xlmeta_xml)();\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array*/ = [], cursheet/*:Worksheet*/ = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF_load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(/*::wb, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array*/ = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array*/ = wb.Workbook.Names;\n\tvar out/*:Array*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"
\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002f /* FilePass */: case 0x0195 /* FileLock */: case 0x00e1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ((options.dense ? [] : {})/*:any*/);\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array*/ = [], rowinfo/*:Array*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* 'BOF' */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {})/*:any*/);\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF_load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF_load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF_load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\tstr = str.replace(//g, \"\");\n\tvar mtch/*:any*/ = str.match(/\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array*/ = [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_cell({r:R,c:C});\n\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tvar sp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '' + w + '';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"\";\n\treturn preamble + oo.join(\"\") + \"\";\n}\n\nvar HTML_BEGIN = 'SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar rows/*:HTMLCollection*/ = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.children/*:any*/);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\nvar number_formats_ods = {\n\t/* ods name: [short ssf fmt, long ssf fmt] */\n\tday: [\"d\", \"dd\"],\n\tmonth: [\"m\", \"mm\"],\n\tyear: [\"y\", \"yy\"],\n\thours: [\"h\", \"hh\"],\n\tminutes: [\"m\", \"mm\"],\n\tseconds: [\"s\", \"ss\"],\n\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\tera: [\"e\", \"ee\"],\n\t/* there is no native representation of LO \"Q\" format */\n\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n};\n\n\nfunction parse_content_xml(d/*:string*/, _opts)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = opts.dense ? ([]/*:any*/) : ({}/*:any*/);\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]/*:any*/) : ({}/*:any*/); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats_ods[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*//*::, opts*/)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8contains(body, search) {\n outer:\n for (var L = 0; L <= body.length - search.length; ++L) {\n for (var j = 0; j < search.length; ++j)\n if (body[L + j] != search[j])\n continue outer;\n return true;\n }\n return false;\n}\nfunction u8concat(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 20;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz.slice(0, L);\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [];\n ai[1] = [{ data: write_varint49(ia.id), type: 0 }];\n ai[2] = [];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n}\nfunction decompress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf.slice(l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nfunction parse_old_storage(buf, sst, rsst, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var data_offset = (v > 1 ? 12 : 8) + popcnt(flags & (v > 1 ? 3470 : 398)) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (buf[2]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction parse_new_storage(buf, sst, rsst) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(8, true);\n var data_offset = 12;\n var ridx = -1, sidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 1) {\n d128 = readDecimal128LE(buf, data_offset);\n data_offset += 16;\n }\n if (flags & 2) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n if (flags & 8) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 16) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n var ret;\n switch (buf[1]) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee / 86400 };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(flags & 31, \" : \").concat(buf.slice(0, 4)));\n }\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[1] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out.slice(0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 3;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n if (sst.indexOf(cell.v) == -1)\n throw new Error(\"Value \".concat(cell.v, \" missing from SST!\"));\n out[2] = 3;\n dv.setUint32(l, sst.indexOf(cell.v), true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(4, flags, true);\n return out.slice(0, l);\n}\nfunction parse_cell_storage(buf, sst, rsst) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n return parse_old_storage(buf, sst, rsst, buf[0]);\n case 5:\n return parse_new_storage(buf, sst, rsst);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n var out = [];\n out[1] = [{ type: 0, data: write_varint49(idx) }];\n return write_shallow(out);\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage.subarray(offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage.subarray(offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) ? varint_to_i32(pb[7][0].data) >>> 0 > 0 ? 1 : 0 : -1;\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]) : [];\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n var _tile = parse_TST_Tile(M, ref);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: _R + R, c: C });\n var res = parse_cell_storage(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n _R += _tile.nrows;\n });\n}\nfunction parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n}\nfunction parse_numbers_iwa(cfb) {\n var _a, _b, _c, _d;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n var docroot = ((_d = (_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.meta) == null ? void 0 : _c[1]) == null ? void 0 : _d[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot);\n}\nfunction write_tile_row(tri, data, SST) {\n var _a, _b, _c, _d;\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var wide_offsets = ((_d = (_c = tri[8]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && varint_to_i32(tri[8][0].data) > 0 || false;\n if (wide_offsets)\n throw \"Math only works with normal offsets\";\n var cnt = 0;\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset, true);\n _dv.setUint16(C * 2, _last_offset, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n return cnt;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var ws = wb.Sheets[wb.SheetNames[0]];\n if (wb.SheetNames.length > 1)\n console.error(\"The Numbers writer currently writes only the first table\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 9) {\n trunc = true;\n range.e.c = 9;\n }\n if (range.e.r > 49) {\n trunc = true;\n range.e.r = 49;\n }\n if (trunc)\n console.error(\"The Numbers writer is currently limited to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n data.forEach(function(row) {\n return row.forEach(function(cell) {\n if (typeof cell == \"string\")\n SST.push(cell);\n });\n });\n var dependents = {};\n var indices = [];\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n var old_content = fi.content;\n var raw1 = decompress_iwa_file(old_content);\n var x2 = parse_iwa_file(raw1);\n x2.forEach(function(packet2) {\n indices.push(packet2.id);\n dependents[packet2.id] = { deps: [], location: fp, type: varint_to_i32(packet2.messages[0].meta[1][0].data) };\n });\n });\n indices.sort(function(x2, y2) {\n return x2 - y2;\n });\n var indices_varint = indices.filter(function(x2) {\n return x2 > 1;\n }).map(function(x2) {\n return [x2, write_varint49(x2)];\n });\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (!fi.name.match(/\\.iwa/))\n return;\n var x2 = parse_iwa_file(decompress_iwa_file(fi.content));\n x2.forEach(function(ia) {\n ia.messages.forEach(function(m) {\n indices_varint.forEach(function(ivi) {\n if (ia.messages.some(function(mess) {\n return varint_to_i32(mess.meta[1][0].data) != 11006 && u8contains(mess.data, ivi[1]);\n })) {\n dependents[ivi[0]].deps.push(ia.id);\n }\n });\n });\n });\n });\n function get_unique_msgid() {\n for (var i = 927262; i < 2e6; ++i)\n if (!dependents[i])\n return i;\n throw new Error(\"Too many messages\");\n }\n var entry = CFB.find(cfb, dependents[1].location);\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var docroot;\n for (var xi = 0; xi < x.length; ++xi) {\n var packet = x[xi];\n if (packet.id == 1)\n docroot = packet;\n }\n var sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n sheetrootref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[2][0].data);\n entry = CFB.find(cfb, dependents[sheetrootref].location);\n x = parse_iwa_file(decompress_iwa_file(entry.content));\n for (xi = 0; xi < x.length; ++xi) {\n packet = x[xi];\n if (packet.id == sheetrootref)\n docroot = packet;\n }\n var pb = parse_shallow(docroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n var cruidsref = parse_TSP_Reference(pb[46][0].data);\n var oldbucket = CFB.find(cfb, dependents[cruidsref].location);\n var _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n for (var j = 0; j < _x.length; ++j) {\n if (_x[j].id == cruidsref)\n break;\n }\n if (_x[j].id != cruidsref)\n throw \"Bad ColumnRowUIDMapArchive\";\n var cruids = parse_shallow(_x[j].messages[0].data);\n cruids[1] = [];\n cruids[2] = [], cruids[3] = [];\n for (var C = 0; C <= range.e.c; ++C) {\n var uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(C + 420690) }];\n cruids[1].push({ type: 2, data: write_shallow(uuid) });\n cruids[2].push({ type: 0, data: write_varint49(C) });\n cruids[3].push({ type: 0, data: write_varint49(C) });\n }\n cruids[4] = [];\n cruids[5] = [], cruids[6] = [];\n for (var R = 0; R <= range.e.r; ++R) {\n uuid = [];\n uuid[1] = uuid[2] = [{ type: 0, data: write_varint49(R + 726270) }];\n cruids[4].push({ type: 2, data: write_shallow(uuid) });\n cruids[5].push({ type: 0, data: write_varint49(R) });\n cruids[6].push({ type: 0, data: write_varint49(R) });\n }\n _x[j].messages[0].data = write_shallow(cruids);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n store[7][0].data = write_varint49(range.e.r + 1);\n var row_headers = parse_shallow(store[1][0].data);\n var row_header_ref = parse_TSP_Reference(row_headers[2][0].data);\n oldbucket = CFB.find(cfb, dependents[row_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != row_header_ref)\n throw \"Bad HeaderStorageBucket\";\n var base_bucket = parse_shallow(_x[0].messages[0].data);\n for (R = 0; R < data.length; ++R) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R);\n _bucket[4][0].data = write_varint49(data[R].length);\n base_bucket[2][R] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n oldbucket = CFB.find(cfb, dependents[col_header_ref].location);\n _x = parse_iwa_file(decompress_iwa_file(oldbucket.content));\n {\n if (_x[0].id != col_header_ref)\n throw \"Bad HeaderStorageBucket\";\n base_bucket = parse_shallow(_x[0].messages[0].data);\n for (C = 0; C <= range.e.c; ++C) {\n _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n _x[0].messages[0].data = write_shallow(base_bucket);\n }\n oldbucket.content = compress_iwa_file(write_iwa_file(_x));\n oldbucket.size = oldbucket.content.length;\n var sstref = parse_TSP_Reference(store[4][0].data);\n (function() {\n var sentry = CFB.find(cfb, dependents[sstref].location);\n var sx = parse_iwa_file(decompress_iwa_file(sentry.content));\n var sstroot;\n for (var sxi = 0; sxi < sx.length; ++sxi) {\n var packet2 = sx[sxi];\n if (packet2.id == sstref)\n sstroot = packet2;\n }\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n var newsst = [];\n SST.forEach(function(str, i) {\n newsst[1] = [{ type: 0, data: write_varint49(i) }];\n newsst[2] = [{ type: 0, data: write_varint49(1) }];\n newsst[3] = [{ type: 2, data: stru8(str) }];\n sstdata[3].push({ type: 2, data: write_shallow(newsst) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n var sy = write_iwa_file(sx);\n var raw32 = compress_iwa_file(sy);\n sentry.content = raw32;\n sentry.size = sentry.content.length;\n })();\n var tile = parse_shallow(store[3][0].data);\n {\n var t = tile[1][0];\n delete tile[2];\n var tl = parse_shallow(t.data);\n {\n var tileref = parse_TSP_Reference(tl[2][0].data);\n (function() {\n var tentry = CFB.find(cfb, dependents[tileref].location);\n var tx = parse_iwa_file(decompress_iwa_file(tentry.content));\n var tileroot;\n for (var sxi = 0; sxi < tx.length; ++sxi) {\n var packet2 = tx[sxi];\n if (packet2.id == tileref)\n tileroot = packet2;\n }\n var tiledata = parse_shallow(tileroot.messages[0].data);\n {\n delete tiledata[6];\n delete tile[7];\n var rowload = new Uint8Array(tiledata[5][0].data);\n tiledata[5] = [];\n var cnt = 0;\n for (var R2 = 0; R2 <= range.e.r; ++R2) {\n var tilerow = parse_shallow(rowload);\n cnt += write_tile_row(tilerow, data[R2], SST);\n tilerow[1][0].data = write_varint49(R2);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tiledata[1] = [{ type: 0, data: write_varint49(range.e.c + 1) }];\n tiledata[2] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n tiledata[3] = [{ type: 0, data: write_varint49(cnt) }];\n tiledata[4] = [{ type: 0, data: write_varint49(range.e.r + 1) }];\n }\n tileroot.messages[0].data = write_shallow(tiledata);\n var ty = write_iwa_file(tx);\n var raw32 = compress_iwa_file(ty);\n tentry.content = raw32;\n tentry.size = tentry.content.length;\n })();\n }\n t.data = write_shallow(tl);\n }\n store[3][0].data = write_shallow(tile);\n }\n pb[4][0].data = write_shallow(store);\n }\n docroot.messages[0].data = write_shallow(pb);\n var y = write_iwa_file(x);\n var raw3 = compress_iwa_file(y);\n entry.content = raw3;\n entry.size = entry.content.length;\n return cfb;\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tvar comments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(opts.bookType == \"numbers\") return write_numbers_iwa(wb, opts);\n\tif(opts.bookType == \"xlsb\") return write_zip_xlsxb(wb, opts);\n\treturn write_zip_xlsx(wb, opts);\n}\n\n/* XLSX and XLSB writing are very similar. Originally they were unified in one\n export function. This is horrible for tree shaking in the common case (most\n applications need to export files in one format) so this function supports\n both formats while write_zip_xlsx only handles XLSX */\nfunction write_zip_xlsxb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta(f));\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\t_shapeid = 1024;\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".\" + wbext;\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".\" + wbext, RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\td = $cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(RTF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, dense/*:boolean*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell/*:Cell*/;\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = ws_get_cell_stub(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\to.dense = Array.isArray(ws);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n set_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\n","export const idlFactory = ({ IDL }) => {\n const Error = IDL.Variant({\n 'NoFreeBoxNum': IDL.Null,\n 'NoUnBoundOg': IDL.Null,\n 'Named': IDL.Null,\n 'NoBox': IDL.Null,\n 'DataBoxNotExist': IDL.Null,\n 'OnlyDataBoxCanDeleted': IDL.Null,\n 'BalanceNotEnough': IDL.Null,\n 'NameRepeat': IDL.Null,\n 'UnAuthorized': IDL.Null,\n 'DataBoxEnough': IDL.Null,\n 'DataBoxNotShareTo': IDL.Null,\n 'CreateBoxOnWay': IDL.Null,\n 'SomethingErr': IDL.Null,\n 'LedgerTransferError': IDL.Nat,\n 'Invalid_Operation': IDL.Null,\n 'NotBoxOwner': IDL.Null,\n 'NoProfile': IDL.Null,\n 'ProfileEnough': IDL.Null,\n 'NotifyCreateError': IDL.Nat,\n });\n const Result = IDL.Variant({ 'ok': IDL.Null, 'err': Error });\n const BurnError = IDL.Variant({\n 'InsufficientBalance': IDL.Null,\n 'InvalidTokenContract': IDL.Null,\n 'NotSufficientLiquidity': IDL.Null,\n });\n const RustResult = IDL.Variant({ 'Ok': IDL.Nat64, 'Err': BurnError });\n const BoxType = IDL.Variant({\n 'xid': IDL.Null,\n 'data_box': IDL.Null,\n 'profile': IDL.Null,\n });\n const BoxMetadata = IDL.Record({\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const CreateBoxArgs = IDL.Record({ 'metadata': BoxMetadata });\n const Result_6 = IDL.Variant({ 'ok': IDL.Principal, 'err': Error });\n const DelBoxArgs = IDL.Record({\n 'cycleTo': IDL.Opt(IDL.Principal),\n 'box_type': BoxType,\n 'canisterId': IDL.Principal,\n });\n const Result_5 = IDL.Variant({ 'ok': IDL.Text, 'err': Error });\n const BoxStatus = IDL.Variant({ 'stopped': IDL.Null, 'running': IDL.Null });\n const BoxState__1 = IDL.Record({\n 'status': BoxStatus,\n 'owner': IDL.Principal,\n 'avatar_key': IDL.Text,\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const BackUp = IDL.Variant({\n 'One': IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Vec(IDL.Principal))),\n 'Six': IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Text)),\n 'Two': IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Nat)),\n 'Seven': IDL.Vec(IDL.Principal),\n 'Five': IDL.Vec(IDL.Tuple(IDL.Text, IDL.Principal)),\n 'Four': IDL.Vec(IDL.Tuple(IDL.Principal, IDL.Principal)),\n 'Three': IDL.Vec(IDL.Tuple(IDL.Principal, BoxState__1)),\n });\n const BoxState = IDL.Record({\n 'status': BoxStatus,\n 'owner': IDL.Principal,\n 'avatar_key': IDL.Text,\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const Result_4 = IDL.Variant({ 'ok': BoxState, 'err': Error });\n const BoxAllInfo = IDL.Record({\n 'status': BoxStatus,\n 'owner': IDL.Principal,\n 'avatar_key': IDL.Text,\n 'canister_id': IDL.Principal,\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const Result_3 = IDL.Variant({\n 'ok': IDL.Vec(IDL.Principal),\n 'err': Error,\n });\n const BoxInfo__1 = IDL.Record({\n 'status': BoxStatus,\n 'canister_id': IDL.Principal,\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const TopUpArgs = IDL.Record({\n 'box_id': IDL.Principal,\n 'icp_amount': IDL.Nat64,\n });\n const AccountIdentifier = IDL.Vec(IDL.Nat8);\n const BlockIndex__1 = IDL.Nat64;\n const Token = IDL.Record({ 'e8s': IDL.Nat64 });\n const BlockIndex = IDL.Nat64;\n const TransferError = IDL.Variant({\n 'TxTooOld': IDL.Record({ 'allowed_window_nanos': IDL.Nat64 }),\n 'BadFee': IDL.Record({ 'expected_fee': Token }),\n 'TxDuplicate': IDL.Record({ 'duplicate_of': BlockIndex }),\n 'TxCreatedInFuture': IDL.Null,\n 'InsufficientFunds': IDL.Record({ 'balance': Token }),\n });\n const Result_2 = IDL.Variant({ 'ok': BlockIndex__1, 'err': TransferError });\n const UpdateWasmArgs = IDL.Record({\n 'wasm': IDL.Vec(IDL.Nat8),\n 'box_type': BoxType,\n });\n const Result_1 = IDL.Variant({ 'ok': IDL.Text, 'err': IDL.Text });\n const BoxInfo = IDL.Record({\n 'status': BoxStatus,\n 'canister_id': IDL.Principal,\n 'is_private': IDL.Bool,\n 'box_name': IDL.Text,\n 'box_type': BoxType,\n });\n const UpgradeBoxArgs = IDL.Record({ 'info': BoxInfo });\n const MetaBox = IDL.Service({\n 'acceptSharedBox': IDL.Func([IDL.Principal, IDL.Principal], [Result], []),\n 'addAdmin': IDL.Func([IDL.Principal], [IDL.Bool], []),\n 'addControlWhiteList': IDL.Func([IDL.Principal], [IDL.Bool], []),\n 'burnxtc': IDL.Func([IDL.Nat], [RustResult], []),\n 'changeAdmin': IDL.Func([IDL.Vec(IDL.Principal)], [IDL.Bool], []),\n 'changeBoxAvatarKey': IDL.Func([IDL.Text], [], []),\n 'clearLog': IDL.Func([], [], []),\n 'createDataBoxControl': IDL.Func([CreateBoxArgs, IDL.Bool, IDL.Opt(IDL.Principal)], [Result_6], []),\n 'createDataBoxFee': IDL.Func([CreateBoxArgs, IDL.Bool], [Result_6], []),\n 'createDataBoxFree': IDL.Func([CreateBoxArgs], [Result_6], []),\n 'createDataBoxServer': IDL.Func([CreateBoxArgs, IDL.Principal], [IDL.Principal], []),\n 'createProfile': IDL.Func([IDL.Vec(IDL.Nat8)], [Result_6], []),\n 'deleteBox': IDL.Func([DelBoxArgs], [Result_5], []),\n 'emitShareBox': IDL.Func([IDL.Principal, IDL.Principal], [Result], []),\n 'getAdmins': IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\n 'getAllPC': IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\n 'getBackUp': IDL.Func([IDL.Nat], [BackUp], ['query']),\n 'getBoxState': IDL.Func([IDL.Principal], [Result_4], ['query']),\n 'getBoxes': IDL.Func([IDL.Principal], [IDL.Vec(BoxAllInfo)], ['query']),\n 'getControlWhitelist': IDL.Func([], [IDL.Vec(IDL.Principal)], ['query']),\n 'getCycleBalance': IDL.Func([], [IDL.Nat64], ['query']),\n 'getDataBoxVersion': IDL.Func([], [IDL.Nat], ['query']),\n 'getIcp': IDL.Func([], [IDL.Nat64], []),\n 'getLog': IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Nat, IDL.Text))], ['query']),\n 'getNameFromPrincipal': IDL.Func([IDL.Principal], [IDL.Opt(IDL.Text)], ['query']),\n 'getNamePrin': IDL.Func([IDL.Principal], [IDL.Opt(IDL.Text)], ['query']),\n 'getPre': IDL.Func([], [IDL.Nat, IDL.Nat], ['query']),\n 'getPrincipalFromName': IDL.Func([IDL.Text], [IDL.Opt(IDL.Principal)], ['query']),\n 'getProfile': IDL.Func([IDL.Principal], [IDL.Opt(IDL.Principal)], ['query']),\n 'getProfileVersion': IDL.Func([], [IDL.Nat], ['query']),\n 'getShareBoxes': IDL.Func([], [IDL.Vec(BoxAllInfo)], ['query']),\n 'getSharedBoxes': IDL.Func([], [IDL.Vec(BoxAllInfo)], ['query']),\n 'getTotal': IDL.Func([], [IDL.Nat, IDL.Nat], ['query']),\n 'getUserBalance': IDL.Func([], [IDL.Opt(IDL.Nat)], ['query']),\n 'initPreCreateDatabox': IDL.Func([], [Result_3], []),\n 'initPreCreateProfile': IDL.Func([], [Result_3], []),\n 'installCycleWasm': IDL.Func([IDL.Vec(IDL.Nat8)], [Result], []),\n 'isNotFirstDataBox': IDL.Func([], [IDL.Bool], ['query']),\n 'preCreateDataBox': IDL.Func([], [Result_3], []),\n 'preCreateDataBoxOne': IDL.Func([], [Result], []),\n 'preCreateProfile': IDL.Func([], [Result_3], []),\n 'preCreateProfileOne': IDL.Func([], [Result_3], []),\n 'refreshBalance': IDL.Func([IDL.Principal], [], []),\n 'removeShareBox': IDL.Func([IDL.Principal, IDL.Principal], [Result], []),\n 'removeSharedBox': IDL.Func([IDL.Principal, IDL.Principal], [Result], []),\n 'selfburn': IDL.Func([IDL.Nat], [RustResult], []),\n 'setName': IDL.Func([IDL.Text], [Result], []),\n 'startBox': IDL.Func([BoxInfo__1], [], []),\n 'stopBox': IDL.Func([BoxInfo__1], [], []),\n 'topUpBox': IDL.Func([TopUpArgs], [Result], []),\n 'transferDataboxOwner': IDL.Func([IDL.Principal, IDL.Principal], [Result], []),\n 'transferOutICP': IDL.Func([AccountIdentifier, IDL.Nat64], [Result_2], []),\n 'updateBoxInfo': IDL.Func([BoxInfo__1], [Result], []),\n 'updateDataBoxVersion': IDL.Func([IDL.Nat], [IDL.Bool], []),\n 'updateProfileVersion': IDL.Func([IDL.Nat], [IDL.Bool], []),\n 'updateWasm': IDL.Func([UpdateWasmArgs], [Result_1], []),\n 'upgradeBox': IDL.Func([UpgradeBoxArgs], [Result], []),\n 'wallet_receive': IDL.Func([], [], []),\n 'xdrUpdate': IDL.Func([], [IDL.Bool], []),\n });\n return MetaBox;\n};\nexport const init = ({ IDL }) => {\n return [];\n};\n","import { Principal } from '@dfinity/principal';\nimport { RequestId } from '../request_id';\nimport { JsonObject } from '@dfinity/candid';\nimport { Identity } from '..';\n\n/**\n * Codes used by the replica for rejecting a message.\n * See {@link https://sdk.dfinity.org/docs/interface-spec/#reject-codes | the interface spec}.\n */\nexport enum ReplicaRejectCode {\n SysFatal = 1,\n SysTransient = 2,\n DestinationInvalid = 3,\n CanisterReject = 4,\n CanisterError = 5,\n}\n\n/**\n * Options when doing a {@link Agent.readState} call.\n */\nexport interface ReadStateOptions {\n /**\n * A list of paths to read the state of.\n */\n paths: ArrayBuffer[][];\n}\n\n/**\n *\n */\nexport type QueryResponse = QueryResponseReplied | QueryResponseRejected;\n\nexport const enum QueryResponseStatus {\n Replied = 'replied',\n Rejected = 'rejected',\n}\n\nexport interface QueryResponseBase {\n status: QueryResponseStatus;\n}\n\nexport interface QueryResponseReplied extends QueryResponseBase {\n status: QueryResponseStatus.Replied;\n reply: { arg: ArrayBuffer };\n}\n\nexport interface QueryResponseRejected extends QueryResponseBase {\n status: QueryResponseStatus.Rejected;\n reject_code: ReplicaRejectCode;\n reject_message: string;\n}\n\n/**\n * Options when doing a {@link Agent.query} call.\n */\nexport interface QueryFields {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n}\n\n/**\n * Options when doing a {@link Agent.call} call.\n */\nexport interface CallOptions {\n /**\n * The method name to call.\n */\n methodName: string;\n\n /**\n * A binary encoded argument. This is already encoded and will be sent as is.\n */\n arg: ArrayBuffer;\n\n /**\n * An effective canister ID, used for routing. This should only be mentioned if\n * it's different from the canister ID.\n */\n effectiveCanisterId: Principal | string;\n}\n\nexport interface ReadStateResponse {\n certificate: ArrayBuffer;\n}\n\nexport interface SubmitResponse {\n requestId: RequestId;\n response: {\n ok: boolean;\n status: number;\n statusText: string;\n };\n}\n\n/**\n * An Agent able to make calls and queries to a Replica.\n */\nexport interface Agent {\n readonly rootKey: ArrayBuffer | null;\n /**\n * Returns the principal ID associated with this agent (by default). It only shows\n * the principal of the default identity in the agent, which is the principal used\n * when calls don't specify it.\n */\n getPrincipal(): Promise;\n\n /**\n * Create the request for the read state call.\n * `readState` uses this internally.\n * Useful to avoid signing the same request multiple times.\n */\n createReadStateRequest?(\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise;\n\n /**\n * Send a read state query to the replica. This includes a list of paths to return,\n * and will return a Certificate. This will only reject on communication errors,\n * but the certificate might contain less information than requested.\n * @param effectiveCanisterId A Canister ID related to this call.\n * @param options The options for this call.\n * @param identity Identity for the call. If not specified, uses the instance identity.\n * @param request The request to send in case it has already been created.\n */\n readState(\n effectiveCanisterId: Principal | string,\n options: ReadStateOptions,\n identity?: Identity,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n request?: any,\n ): Promise;\n\n call(canisterId: Principal | string, fields: CallOptions): Promise;\n\n /**\n * Query the status endpoint of the replica. This normally has a few fields that\n * corresponds to the version of the replica, its root public key, and any other\n * information made public.\n * @returns A JsonObject that is essentially a record of fields from the status\n * endpoint.\n */\n status(): Promise;\n\n /**\n * Send a query call to a canister. See\n * {@link https://sdk.dfinity.org/docs/interface-spec/#http-query | the interface spec}.\n * @param canisterId The Principal of the Canister to send the query to. Sending a query to\n * the management canister is not supported (as it has no meaning from an agent).\n * @param options Options to use to create and send the query.\n * @returns The response from the replica. The Promise will only reject when the communication\n * failed. If the query itself failed but no protocol errors happened, the response will\n * be of type QueryResponseRejected.\n */\n query(canisterId: Principal | string, options: QueryFields): Promise;\n\n /**\n * By default, the agent is configured to talk to the main Internet Computer,\n * and verifies responses using a hard-coded public key.\n *\n * This function will instruct the agent to ask the endpoint for its public\n * key, and use that instead. This is required when talking to a local test\n * instance, for example.\n *\n * Only use this when you are _not_ talking to the main Internet Computer,\n * otherwise you are prone to man-in-the-middle attacks! Do not call this\n * function by default.\n */\n fetchRootKey(): Promise;\n /**\n * If an application needs to invalidate an identity under certain conditions, an `Agent` may expose an `invalidateIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to `null`.\n *\n * A use case for this would be - after a certain period of inactivity, a secure application chooses to invalidate the identity of any `HttpAgent` instances. An invalid identity can be replaced by `Agent.replaceIdentity`\n */\n invalidateIdentity?(): void;\n /**\n * If an application needs to replace an identity under certain conditions, an `Agent` may expose a `replaceIdentity` method.\n * Invoking this method will set the inner identity used by the `Agent` to a newly provided identity.\n *\n * A use case for this would be - after authenticating using `@dfinity/auth-client`, you can replace the `AnonymousIdentity` of your `Actor` with a `DelegationIdentity`.\n *\n * ```Actor.agentOf(defaultActor).replaceIdentity(await authClient.getIdentity());```\n */\n replaceIdentity?(identity: Identity): void;\n}\n","// tslint:disable:no-bitwise\nconst alphabet = 'abcdefghijklmnopqrstuvwxyz234567';\n\n// Build a lookup table for decoding.\nconst lookupTable: Record = Object.create(null);\nfor (let i = 0; i < alphabet.length; i++) {\n lookupTable[alphabet[i]] = i;\n}\n\n// Add aliases for rfc4648.\nlookupTable['0'] = lookupTable.o;\nlookupTable['1'] = lookupTable.i;\n\n/**\n * @param input The input array to encode.\n * @returns A Base32 string encoding the input.\n */\nexport function encode(input: Uint8Array): string {\n // How many bits will we skip from the first byte.\n let skip = 0;\n // 5 high bits, carry from one byte to the next.\n let bits = 0;\n\n // The output string in base32.\n let output = '';\n\n function encodeByte(byte: number) {\n if (skip < 0) {\n // we have a carry from the previous byte\n bits |= byte >> -skip;\n } else {\n // no carry\n bits = (byte << skip) & 248;\n }\n\n if (skip > 3) {\n // Not enough data to produce a character, get us another one\n skip -= 8;\n return 1;\n }\n\n if (skip < 4) {\n // produce a character\n output += alphabet[bits >> 3];\n skip += 5;\n }\n\n return 0;\n }\n\n for (let i = 0; i < input.length; ) {\n i += encodeByte(input[i]);\n }\n\n return output + (skip < 0 ? alphabet[bits >> 3] : '');\n}\n\n/**\n * @param input The base32 encoded string to decode.\n */\nexport function decode(input: string): Uint8Array {\n // how many bits we have from the previous character.\n let skip = 0;\n // current byte we're producing.\n let byte = 0;\n\n const output = new Uint8Array(((input.length * 4) / 3) | 0);\n let o = 0;\n\n function decodeChar(char: string) {\n // Consume a character from the stream, store\n // the output in this.output. As before, better\n // to use update().\n let val = lookupTable[char.toLowerCase()];\n if (val === undefined) {\n throw new Error(`Invalid character: ${JSON.stringify(char)}`);\n }\n\n // move to the high bits\n val <<= 3;\n byte |= val >>> skip;\n skip += 5;\n\n if (skip >= 8) {\n // We have enough bytes to produce an output\n output[o++] = byte;\n skip -= 8;\n\n if (skip > 0) {\n byte = (val << (5 - skip)) & 255;\n } else {\n byte = 0;\n }\n }\n }\n\n for (const c of input) {\n decodeChar(c);\n }\n\n return output.slice(0, o);\n}\n","// tslint:disable:no-bitwise\n\n// This file is translated to JavaScript from\n// https://lxp32.github.io/docs/a-simple-example-crc32-calculation/\nconst lookUpTable: Uint32Array = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,\n]);\n\n/**\n * Calculate the CRC32 of an ArrayBufferLike.\n * @param buf The BufferLike to calculate the CRC32 of.\n */\nexport function getCrc32(buf: ArrayBufferLike): number {\n const b = new Uint8Array(buf);\n let crc = -1;\n\n // tslint:disable-next-line:prefer-for-of\n for (let i = 0; i < b.length; i++) {\n const byte = b[i];\n const t = (byte ^ crc) & 0xff;\n crc = lookUpTable[t] ^ (crc >>> 8);\n }\n\n return (crc ^ -1) >>> 0;\n}\n","import { decode, encode } from './utils/base32';\nimport { getCrc32 } from './utils/getCrc';\nimport { sha224 } from './utils/sha224';\n\nconst SELF_AUTHENTICATING_SUFFIX = 2;\nconst ANONYMOUS_SUFFIX = 4;\n\nconst MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR = 'aaaaa-aa';\n\nconst fromHexString = (hexString: string) =>\n new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n\nconst toHexString = (bytes: Uint8Array) =>\n bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n\nexport class Principal {\n public static anonymous(): Principal {\n return new this(new Uint8Array([ANONYMOUS_SUFFIX]));\n }\n\n /**\n * Utility method, returning the principal representing the management canister, decoded from the hex string `'aaaaa-aa'`\n * @returns {Principal} principal of the management canister\n */\n public static managementCanister(): Principal {\n return this.fromHex(MANAGEMENT_CANISTER_PRINCIPAL_HEX_STR);\n }\n\n public static selfAuthenticating(publicKey: Uint8Array): Principal {\n const sha = sha224(publicKey);\n return new this(new Uint8Array([...sha, SELF_AUTHENTICATING_SUFFIX]));\n }\n\n public static from(other: unknown): Principal {\n if (typeof other === 'string') {\n return Principal.fromText(other);\n } else if (\n typeof other === 'object' &&\n other !== null &&\n (other as Principal)._isPrincipal === true\n ) {\n return new Principal((other as Principal)._arr);\n }\n\n throw new Error(`Impossible to convert ${JSON.stringify(other)} to Principal.`);\n }\n\n public static fromHex(hex: string): Principal {\n return new this(fromHexString(hex));\n }\n\n public static fromText(text: string): Principal {\n const canisterIdNoDash = text.toLowerCase().replace(/-/g, '');\n\n let arr = decode(canisterIdNoDash);\n arr = arr.slice(4, arr.length);\n\n const principal = new this(arr);\n if (principal.toText() !== text) {\n throw new Error(\n `Principal \"${principal.toText()}\" does not have a valid checksum (original value \"${text}\" may not be a valid Principal ID).`,\n );\n }\n\n return principal;\n }\n\n public static fromUint8Array(arr: Uint8Array): Principal {\n return new this(arr);\n }\n\n public readonly _isPrincipal = true;\n\n protected constructor(private _arr: Uint8Array) {}\n\n public isAnonymous(): boolean {\n return this._arr.byteLength === 1 && this._arr[0] === ANONYMOUS_SUFFIX;\n }\n\n public toUint8Array(): Uint8Array {\n return this._arr;\n }\n\n public toHex(): string {\n return toHexString(this._arr).toUpperCase();\n }\n\n public toText(): string {\n const checksumArrayBuf = new ArrayBuffer(4);\n const view = new DataView(checksumArrayBuf);\n view.setUint32(0, getCrc32(this._arr));\n const checksum = new Uint8Array(checksumArrayBuf);\n\n const bytes = Uint8Array.from(this._arr);\n const array = new Uint8Array([...checksum, ...bytes]);\n\n const result = encode(array);\n const matches = result.match(/.{1,5}/g);\n if (!matches) {\n // This should only happen if there's no character, which is unreachable.\n throw new Error();\n }\n return matches.join('-');\n }\n\n public toString(): string {\n return this.toText();\n }\n\n /**\n * Utility method taking a Principal to compare against. Used for determining canister ranges in certificate verification\n * @param {Principal} other - a {@link Principal} to compare\n * @returns {'lt' | 'eq' | 'gt'} `'lt' | 'eq' | 'gt'` a string, representing less than, equal to, or greater than\n */\n public compareTo(other: Principal): 'lt' | 'eq' | 'gt' {\n for (let i = 0; i < Math.min(this._arr.length, other._arr.length); i++) {\n if (this._arr[i] < other._arr[i]) return 'lt';\n else if (this._arr[i] > other._arr[i]) return 'gt';\n }\n // Here, at least one principal is a prefix of the other principal (they could be the same)\n if (this._arr.length < other._arr.length) return 'lt';\n if (this._arr.length > other._arr.length) return 'gt';\n return 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is less than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public ltEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'lt' || cmp == 'eq';\n }\n\n /**\n * Utility method checking whether a provided Principal is greater than or equal to the current one using the {@link Principal.compareTo} method\n * @param other a {@link Principal} to compare\n * @returns {boolean} boolean\n */\n public gtEq(other: Principal): boolean {\n const cmp = this.compareTo(other);\n return cmp == 'gt' || cmp == 'eq';\n }\n}\n","import { sha224 as jsSha224 } from 'js-sha256';\n\n/**\n * Returns the SHA224 hash of the buffer.\n * @param data Arraybuffer to encode\n */\nexport function sha224(data: ArrayBuffer): Uint8Array {\n const shaObj = jsSha224.create();\n shaObj.update(data);\n return new Uint8Array(shaObj.array());\n}\n","/**\n * An error that happens in the Agent. This is the root of all errors and should be used\n * everywhere in the Agent code (this package).\n *\n * @todo https://github.com/dfinity/agent-js/issues/420\n */\nexport class AgentError extends Error {\n constructor(public readonly message: string) {\n super(message);\n Object.setPrototypeOf(this, AgentError.prototype);\n }\n}\n","/**\n * Concatenate multiple array buffers.\n * @param buffers The buffers to concatenate.\n */\nexport function concat(...buffers: ArrayBuffer[]): ArrayBuffer {\n const result = new Uint8Array(buffers.reduce((acc, curr) => acc + curr.byteLength, 0));\n let index = 0;\n for (const b of buffers) {\n result.set(new Uint8Array(b), index);\n index += b.byteLength;\n }\n return result;\n}\n\n/**\n * Returns an hexadecimal representation of an array buffer.\n * @param bytes The array buffer.\n */\nexport function toHexString(bytes: ArrayBuffer): string {\n return new Uint8Array(bytes).reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n\n/**\n * Return an array buffer from its hexadecimal representation.\n * @param hexString The hexadecimal string.\n */\nexport function fromHexString(hexString: string): ArrayBuffer {\n return new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16)));\n}\n\n/**\n * A class that abstracts a pipe-like ArrayBuffer.\n */\nexport class PipeArrayBuffer {\n /**\n * The reading view. It's a sliding window as we read and write, pointing to the buffer.\n * @private\n */\n private _view: Uint8Array;\n\n /**\n * The actual buffer containing the bytes.\n * @private\n */\n private _buffer: ArrayBuffer;\n\n /**\n * Creates a new instance of a pipe\n * @param buffer an optional buffer to start with\n * @param length an optional amount of bytes to use for the length.\n */\n constructor(buffer?: ArrayBuffer, length = buffer?.byteLength || 0) {\n this._buffer = buffer || new ArrayBuffer(0);\n this._view = new Uint8Array(this._buffer, 0, length);\n }\n\n get buffer(): ArrayBuffer {\n // Return a copy of the buffer.\n return this._view.slice();\n }\n\n get byteLength(): number {\n return this._view.byteLength;\n }\n\n /**\n * Read `num` number of bytes from the front of the pipe.\n * @param num The number of bytes to read.\n */\n public read(num: number): ArrayBuffer {\n const result = this._view.subarray(0, num);\n this._view = this._view.subarray(num);\n return result.slice().buffer;\n }\n\n public readUint8(): number | undefined {\n const result = this._view[0];\n this._view = this._view.subarray(1);\n return result;\n }\n\n /**\n * Write a buffer to the end of the pipe.\n * @param buf The bytes to write.\n */\n public write(buf: ArrayBuffer): void {\n const b = new Uint8Array(buf);\n const offset = this._view.byteLength;\n if (this._view.byteOffset + this._view.byteLength + b.byteLength >= this._buffer.byteLength) {\n // Alloc grow the view to include the new bytes.\n this.alloc(b.byteLength);\n } else {\n // Update the view to include the new bytes.\n this._view = new Uint8Array(\n this._buffer,\n this._view.byteOffset,\n this._view.byteLength + b.byteLength,\n );\n }\n\n this._view.set(b, offset);\n }\n\n /**\n * Whether or not there is more data to read from the buffer\n */\n public get end(): boolean {\n return this._view.byteLength === 0;\n }\n\n /**\n * Allocate a fixed amount of memory in the buffer. This does not affect the view.\n * @param amount A number of bytes to add to the buffer.\n */\n public alloc(amount: number) {\n // Add a little bit of exponential growth.\n // tslint:disable-next-line:no-bitwise\n const b = new ArrayBuffer(((this._buffer.byteLength + amount) * 1.2) | 0);\n const v = new Uint8Array(b, 0, this._view.byteLength + amount);\n v.set(this._view);\n this._buffer = b;\n this._view = v;\n }\n}\n","/**\n * Hashes a string to a number. Algorithm can be found here:\n * https://caml.inria.fr/pub/papers/garrigue-polymorphic_variants-ml98.pdf\n * @param s\n */\nfunction idlHash(s: string): number {\n const utf8encoder = new TextEncoder();\n const array = utf8encoder.encode(s);\n\n let h = 0;\n for (const c of array) {\n h = (h * 223 + c) % 2 ** 32;\n }\n return h;\n}\n\n/**\n *\n * @param label string\n * @returns number representing hashed label\n */\nexport function idlLabelToId(label: string): number {\n if (/^_\\d+_$/.test(label) || /^_0x[0-9a-fA-F]+_$/.test(label)) {\n const num = +label.slice(1, -1);\n if (Number.isSafeInteger(num) && num >= 0 && num < 2 ** 32) {\n return num;\n }\n }\n return idlHash(label);\n}\n","/* eslint-disable no-constant-condition */\n// tslint:disable:no-bitwise\n// Note: this file uses buffer-pipe, which on Node only, uses the Node Buffer\n// implementation, which isn't compatible with the NPM buffer package\n// which we use everywhere else. This means that we have to transform\n// one into the other, hence why every function that returns a Buffer\n// actually return `new Buffer(pipe.buffer)`.\n// TODO: The best solution would be to have our own buffer type around\n// Uint8Array which is standard.\nimport { PipeArrayBuffer as Pipe } from './buffer';\n\nfunction eob(): never {\n throw new Error('unexpected end of buffer');\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param num number\n * @returns Buffer\n */\nexport function safeRead(pipe: Pipe, num: number): ArrayBuffer {\n if (pipe.byteLength < num) {\n eob();\n }\n return pipe.read(num);\n}\n\n/**\n * @param pipe\n */\nexport function safeReadUint8(pipe: Pipe): number {\n const byte = pipe.readUint8();\n if (byte === undefined) {\n eob();\n }\n return byte;\n}\n\n/**\n * Encode a positive number (or bigint) into a Buffer. The number will be floored to the\n * nearest integer.\n * @param value The number to encode.\n */\nexport function lebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n if (value < BigInt(0)) {\n throw new Error('Cannot leb encode negative values.');\n }\n\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = Number(value & BigInt(0x7f));\n value /= BigInt(0x80);\n if (value === BigInt(0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number will always be positive (does not\n * support signed leb encoding).\n * @param pipe A Buffer containing the leb encoded bits.\n */\nexport function lebDecode(pipe: Pipe): bigint {\n let weight = BigInt(1);\n let value = BigInt(0);\n let byte;\n\n do {\n byte = safeReadUint8(pipe);\n value += BigInt(byte & 0x7f).valueOf() * weight;\n weight *= BigInt(128);\n } while (byte >= 0x80);\n\n return value;\n}\n\n/**\n * Encode a number (or bigint) into a Buffer, with support for negative numbers. The number\n * will be floored to the nearest integer.\n * @param value The number to encode.\n */\nexport function slebEncode(value: bigint | number): ArrayBuffer {\n if (typeof value === 'number') {\n value = BigInt(value);\n }\n\n const isNeg = value < BigInt(0);\n if (isNeg) {\n value = -value - BigInt(1);\n }\n const byteLength = (value === BigInt(0) ? 0 : Math.ceil(Math.log2(Number(value)))) + 1;\n const pipe = new Pipe(new ArrayBuffer(byteLength), 0);\n while (true) {\n const i = getLowerBytes(value);\n value /= BigInt(0x80);\n\n // prettier-ignore\n if ( ( isNeg && value === BigInt(0) && (i & 0x40) !== 0)\n || (!isNeg && value === BigInt(0) && (i & 0x40) === 0)) {\n pipe.write(new Uint8Array([i]));\n break;\n } else {\n pipe.write(new Uint8Array([i | 0x80]));\n }\n }\n\n function getLowerBytes(num: bigint): number {\n const bytes = num % BigInt(0x80);\n if (isNeg) {\n // We swap the bits here again, and remove 1 to do two's complement.\n return Number(BigInt(0x80) - bytes - BigInt(1));\n } else {\n return Number(bytes);\n }\n }\n return pipe.buffer;\n}\n\n/**\n * Decode a leb encoded buffer into a bigint. The number is decoded with support for negative\n * signed-leb encoding.\n * @param pipe A Buffer containing the signed leb encoded bits.\n */\nexport function slebDecode(pipe: Pipe): bigint {\n // Get the size of the buffer, then cut a buffer of that size.\n const pipeView = new Uint8Array(pipe.buffer);\n let len = 0;\n for (; len < pipeView.byteLength; len++) {\n if (pipeView[len] < 0x80) {\n // If it's a positive number, we reuse lebDecode.\n if ((pipeView[len] & 0x40) === 0) {\n return lebDecode(pipe);\n }\n break;\n }\n }\n\n const bytes = new Uint8Array(safeRead(pipe, len + 1));\n let value = BigInt(0);\n for (let i = bytes.byteLength - 1; i >= 0; i--) {\n value = value * BigInt(0x80) + BigInt(0x80 - (bytes[i] & 0x7f) - 1);\n }\n return -value - BigInt(1);\n}\n\n/**\n *\n * @param value bigint or number\n * @param byteLength number\n * @returns Buffer\n */\nexport function writeUIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n if (BigInt(value) < BigInt(0)) {\n throw new Error('Cannot write negative values.');\n }\n return writeIntLE(value, byteLength);\n}\n\n/**\n *\n * @param value\n * @param byteLength\n */\nexport function writeIntLE(value: bigint | number, byteLength: number): ArrayBuffer {\n value = BigInt(value);\n\n const pipe = new Pipe(new ArrayBuffer(Math.min(1, byteLength)), 0);\n let i = 0;\n let mul = BigInt(256);\n let sub = BigInt(0);\n let byte = Number(value % mul);\n pipe.write(new Uint8Array([byte]));\n while (++i < byteLength) {\n if (value < 0 && sub === BigInt(0) && byte !== 0) {\n sub = BigInt(1);\n }\n byte = Number((value / mul - sub) % BigInt(256));\n pipe.write(new Uint8Array([byte]));\n mul *= BigInt(256);\n }\n\n return pipe.buffer;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readUIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = BigInt(safeReadUint8(pipe));\n let mul = BigInt(1);\n let i = 0;\n while (++i < byteLength) {\n mul *= BigInt(256);\n const byte = BigInt(safeReadUint8(pipe));\n val = val + mul * byte;\n }\n return val;\n}\n\n/**\n *\n * @param pipe Pipe from buffer-pipe\n * @param byteLength number\n * @returns bigint\n */\nexport function readIntLE(pipe: Pipe, byteLength: number): bigint {\n let val = readUIntLE(pipe, byteLength);\n const mul = BigInt(2) ** (BigInt(8) * BigInt(byteLength - 1) + BigInt(7));\n if (val >= mul) {\n val -= mul * BigInt(2);\n }\n return val;\n}\n","/**\n * Equivalent to `Math.log2(n)` with support for `BigInt` values\n *\n * @param n bigint or integer\n * @returns integer\n */\nexport function ilog2(n: bigint | number): number {\n const nBig = BigInt(n);\n if (n <= 0) {\n throw new RangeError('Input must be positive');\n }\n return nBig.toString(2).length - 1;\n}\n\n/**\n * Equivalent to `2 ** n` with support for `BigInt` values\n * (necessary for browser preprocessors which replace the `**` operator with `Math.pow`)\n *\n * @param n bigint or integer\n * @returns bigint\n */\nexport function iexp2(n: bigint | number): bigint {\n const nBig = BigInt(n);\n if (n < 0) {\n throw new RangeError('Input must be non-negative');\n }\n return BigInt(1) << nBig;\n}\n","// tslint:disable:max-classes-per-file\nimport { Principal as PrincipalId } from '@dfinity/principal';\nimport { JsonValue } from './types';\nimport { concat, PipeArrayBuffer as Pipe } from './utils/buffer';\nimport { idlLabelToId } from './utils/hash';\nimport {\n lebDecode,\n lebEncode,\n readIntLE,\n readUIntLE,\n safeRead,\n safeReadUint8,\n slebDecode,\n slebEncode,\n writeIntLE,\n writeUIntLE,\n} from './utils/leb128';\nimport { iexp2 } from './utils/bigint-math';\n\n// tslint:disable:max-line-length\n/**\n * This module provides a combinator library to create serializers/deserializers\n * between JavaScript values and IDL used by canisters on the Internet Computer,\n * as documented at https://github.com/dfinity/candid/blob/119703ba342d2fef6ab4972d2541b9fe36ae8e36/spec/Candid.md\n */\n// tslint:enable:max-line-length\n\nconst enum IDLTypeIds {\n Null = -1,\n Bool = -2,\n Nat = -3,\n Int = -4,\n Float32 = -13,\n Float64 = -14,\n Text = -15,\n Reserved = -16,\n Empty = -17,\n Opt = -18,\n Vector = -19,\n Record = -20,\n Variant = -21,\n Func = -22,\n Service = -23,\n Principal = -24,\n}\n\nconst magicNumber = 'DIDL';\n\nfunction zipWith(xs: TX[], ys: TY[], f: (a: TX, b: TY) => TR): TR[] {\n return xs.map((x, i) => f(x, ys[i]));\n}\n\n/**\n * An IDL Type Table, which precedes the data in the stream.\n */\nclass TypeTable {\n // List of types. Needs to be an array as the index needs to be stable.\n private _typs: ArrayBuffer[] = [];\n private _idx = new Map();\n\n public has(obj: ConstructType) {\n return this._idx.has(obj.name);\n }\n\n public add(type: ConstructType, buf: ArrayBuffer) {\n const idx = this._typs.length;\n this._idx.set(type.name, idx);\n this._typs.push(buf);\n }\n\n public merge(obj: ConstructType, knot: string) {\n const idx = this._idx.get(obj.name);\n const knotIdx = this._idx.get(knot);\n if (idx === undefined) {\n throw new Error('Missing type index for ' + obj);\n }\n if (knotIdx === undefined) {\n throw new Error('Missing type index for ' + knot);\n }\n this._typs[idx] = this._typs[knotIdx];\n\n // Delete the type.\n this._typs.splice(knotIdx, 1);\n this._idx.delete(knot);\n }\n\n public encode() {\n const len = lebEncode(this._typs.length);\n const buf = concat(...this._typs);\n return concat(len, buf);\n }\n\n public indexOf(typeName: string) {\n if (!this._idx.has(typeName)) {\n throw new Error('Missing type index for ' + typeName);\n }\n return slebEncode(this._idx.get(typeName) || 0);\n }\n}\n\nexport abstract class Visitor {\n public visitType(t: Type, data: D): R {\n throw new Error('Not implemented');\n }\n public visitPrimitive(t: PrimitiveType, data: D): R {\n return this.visitType(t, data);\n }\n public visitEmpty(t: EmptyClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitBool(t: BoolClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNull(t: NullClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitReserved(t: ReservedClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitText(t: TextClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitNumber(t: PrimitiveType, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitInt(t: IntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitNat(t: NatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFloat(t: FloatClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n public visitFixedInt(t: FixedIntClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitFixedNat(t: FixedNatClass, data: D): R {\n return this.visitNumber(t, data);\n }\n public visitPrincipal(t: PrincipalClass, data: D): R {\n return this.visitPrimitive(t, data);\n }\n\n public visitConstruct(t: ConstructType, data: D): R {\n return this.visitType(t, data);\n }\n public visitVec(t: VecClass, ty: Type, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitOpt(t: OptClass, ty: Type, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRecord(t: RecordClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitTuple(t: TupleClass, components: Type[], data: D): R {\n const fields: Array<[string, Type]> = components.map((ty, i) => [`_${i}_`, ty]);\n return this.visitRecord(t, fields, data);\n }\n public visitVariant(t: VariantClass, fields: Array<[string, Type]>, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitRec(t: RecClass, ty: ConstructType, data: D): R {\n return this.visitConstruct(ty, data);\n }\n public visitFunc(t: FuncClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n public visitService(t: ServiceClass, data: D): R {\n return this.visitConstruct(t, data);\n }\n}\n\n/**\n * Represents an IDL type.\n */\nexport abstract class Type {\n public abstract readonly name: string;\n public abstract accept(v: Visitor, d: D): R;\n\n /* Display type name */\n public display(): string {\n return this.name;\n }\n\n public valueToString(x: T): string {\n return toReadableString(x);\n }\n\n /* Implement `T` in the IDL spec, only needed for non-primitive types */\n public buildTypeTable(typeTable: TypeTable): void {\n if (!typeTable.has(this)) {\n this._buildTypeTableImpl(typeTable);\n }\n }\n\n /**\n * Assert that JavaScript's `x` is the proper type represented by this\n * Type.\n */\n public abstract covariant(x: any): x is T;\n\n /**\n * Encode the value. This needs to be public because it is used by\n * encodeValue() from different types.\n * @internal\n */\n public abstract encodeValue(x: T): ArrayBuffer;\n\n /**\n * Implement `I` in the IDL spec.\n * Encode this type for the type table.\n */\n public abstract encodeType(typeTable: TypeTable): ArrayBuffer;\n\n public abstract checkType(t: Type): Type;\n public abstract decodeValue(x: Pipe, t: Type): T;\n\n protected abstract _buildTypeTableImpl(typeTable: TypeTable): void;\n}\n\nexport abstract class PrimitiveType extends Type {\n public checkType(t: Type): Type {\n if (this.name !== t.name) {\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n return t;\n }\n public _buildTypeTableImpl(typeTable: TypeTable): void {\n // No type table encoding for Primitive types.\n return;\n }\n}\n\nexport abstract class ConstructType extends Type {\n public checkType(t: Type): ConstructType {\n if (t instanceof RecClass) {\n const ty = t.getType();\n if (typeof ty === 'undefined') {\n throw new Error('type mismatch with uninitialized type');\n }\n return ty;\n }\n throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);\n }\n public encodeType(typeTable: TypeTable) {\n return typeTable.indexOf(this.name);\n }\n}\n\n/**\n * Represents an IDL Empty, a type which has no inhabitants.\n * Since no values exist for this type, it cannot be serialised or deserialised.\n * Result types like `Result` should always succeed.\n */\nexport class EmptyClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitEmpty(this, d);\n }\n\n public covariant(x: any): x is never {\n return false;\n }\n\n public encodeValue(): never {\n throw new Error('Empty cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Empty cannot appear as a value');\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Empty);\n }\n\n public decodeValue(): never {\n throw new Error('Empty cannot appear as an output');\n }\n\n get name() {\n return 'empty';\n }\n}\n\n/**\n * Represents an IDL Unknown, a placeholder type for deserialization only.\n * When decoding a value as Unknown, all fields will be retained but the names are only available in\n * hashed form.\n * A deserialized unknown will offer it's actual type by calling the `type()` function.\n * Unknown cannot be serialized and attempting to do so will throw an error.\n */\nexport class UnknownClass extends Type {\n public checkType(t: Type): Type {\n throw new Error('Method not implemented for unknown.');\n }\n\n public accept(v: Visitor, d: D): R {\n throw v.visitType(this, d);\n }\n\n public covariant(x: any): x is any {\n return false;\n }\n\n public encodeValue(): never {\n throw new Error('Unknown cannot appear as a function argument');\n }\n\n public valueToString(): never {\n throw new Error('Unknown cannot appear as a value');\n }\n\n public encodeType(): never {\n throw new Error('Unknown cannot be serialized');\n }\n\n public decodeValue(b: Pipe, t: Type): any {\n let decodedValue = t.decodeValue(b, t);\n\n if (Object(decodedValue) !== decodedValue) {\n // decodedValue is primitive. Box it, otherwise we cannot add the type() function.\n // The type() function is important for primitives because otherwise we cannot tell apart the\n // different number types.\n decodedValue = Object(decodedValue);\n }\n\n let typeFunc;\n if (t instanceof RecClass) {\n typeFunc = () => t.getType();\n } else {\n typeFunc = () => t;\n }\n // Do not use 'decodedValue.type = typeFunc' because this would lead to an enumerable property\n // 'type' which means it would be serialized if the value would be candid encoded again.\n // This in turn leads to problems if the decoded value is a variant because these values are\n // only allowed to have a single property.\n Object.defineProperty(decodedValue, 'type', {\n value: typeFunc,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n return decodedValue;\n }\n\n protected _buildTypeTableImpl(): void {\n throw new Error('Unknown cannot be serialized');\n }\n\n get name() {\n return 'Unknown';\n }\n}\n\n/**\n * Represents an IDL Bool\n */\nexport class BoolClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitBool(this, d);\n }\n\n public covariant(x: any): x is boolean {\n return typeof x === 'boolean';\n }\n\n public encodeValue(x: boolean): ArrayBuffer {\n return new Uint8Array([x ? 1 : 0]);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Bool);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n switch (safeReadUint8(b)) {\n case 0:\n return false;\n case 1:\n return true;\n default:\n throw new Error('Boolean value out of range');\n }\n }\n\n get name() {\n return 'bool';\n }\n}\n\n/**\n * Represents an IDL Null\n */\nexport class NullClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitNull(this, d);\n }\n\n public covariant(x: any): x is null {\n return x === null;\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Null);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return null;\n }\n\n get name() {\n return 'null';\n }\n}\n\n/**\n * Represents an IDL Reserved\n */\nexport class ReservedClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitReserved(this, d);\n }\n\n public covariant(x: any): x is any {\n return true;\n }\n\n public encodeValue() {\n return new ArrayBuffer(0);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Reserved);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (t.name !== this.name) {\n t.decodeValue(b, t);\n }\n return null;\n }\n\n get name() {\n return 'reserved';\n }\n}\n\n/**\n * Represents an IDL Text\n */\nexport class TextClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitText(this, d);\n }\n\n public covariant(x: any): x is string {\n return typeof x === 'string';\n }\n\n public encodeValue(x: string) {\n const buf = new TextEncoder().encode(x);\n const len = lebEncode(buf.byteLength);\n return concat(len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Text);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const len = lebDecode(b);\n const buf = safeRead(b, Number(len));\n const decoder = new TextDecoder('utf8', { fatal: true });\n return decoder.decode(buf);\n }\n\n get name() {\n return 'text';\n }\n\n public valueToString(x: string) {\n return '\"' + x + '\"';\n }\n}\n\n/**\n * Represents an IDL Int\n */\nexport class IntClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n return typeof x === 'bigint' || Number.isInteger(x);\n }\n\n public encodeValue(x: bigint | number) {\n return slebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Int);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return slebDecode(b);\n }\n\n get name() {\n return 'int';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Nat\n */\nexport class NatClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n // We allow encoding of JavaScript plain numbers.\n // But we will always decode to bigint.\n return (typeof x === 'bigint' && x >= BigInt(0)) || (Number.isInteger(x) && x >= 0);\n }\n\n public encodeValue(x: bigint | number) {\n return lebEncode(x);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Nat);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n return lebDecode(b);\n }\n\n get name() {\n return 'nat';\n }\n\n public valueToString(x: bigint) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Float\n */\nexport class FloatClass extends PrimitiveType {\n constructor(private _bits: number) {\n super();\n if (_bits !== 32 && _bits !== 64) {\n throw new Error('not a valid float type');\n }\n }\n public accept(v: Visitor, d: D): R {\n return v.visitFloat(this, d);\n }\n\n public covariant(x: any): x is number {\n return typeof x === 'number' || x instanceof Number;\n }\n\n public encodeValue(x: number) {\n const buf = new ArrayBuffer(this._bits / 8);\n const view = new DataView(buf);\n if (this._bits === 32) {\n view.setFloat32(0, x, true);\n } else {\n view.setFloat64(0, x, true);\n }\n return buf;\n }\n\n public encodeType() {\n const opcode = this._bits === 32 ? IDLTypeIds.Float32 : IDLTypeIds.Float64;\n return slebEncode(opcode);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const bytes = safeRead(b, this._bits / 8);\n const view = new DataView(bytes);\n if (this._bits === 32) {\n return view.getFloat32(0, true);\n } else {\n return view.getFloat64(0, true);\n }\n }\n\n get name() {\n return 'float' + this._bits;\n }\n\n public valueToString(x: number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Int(n)\n */\nexport class FixedIntClass extends PrimitiveType {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFixedInt(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const min = iexp2(this._bits - 1) * BigInt(-1);\n const max = iexp2(this._bits - 1) - BigInt(1);\n if (typeof x === 'bigint') {\n return x >= min && x <= max;\n } else if (Number.isInteger(x)) {\n const v = BigInt(x);\n return v >= min && v <= max;\n } else {\n return false;\n }\n }\n\n public encodeValue(x: bigint | number) {\n return writeIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-9 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `int${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL fixed-width Nat(n)\n */\nexport class FixedNatClass extends PrimitiveType {\n constructor(public readonly _bits: number) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFixedNat(this, d);\n }\n\n public covariant(x: any): x is bigint {\n const max = iexp2(this._bits);\n if (typeof x === 'bigint' && x >= BigInt(0)) {\n return x < max;\n } else if (Number.isInteger(x) && x >= 0) {\n const v = BigInt(x);\n return v < max;\n } else {\n return false;\n }\n }\n\n public encodeValue(x: bigint | number) {\n return writeUIntLE(x, this._bits / 8);\n }\n\n public encodeType() {\n const offset = Math.log2(this._bits) - 3;\n return slebEncode(-5 - offset);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n this.checkType(t);\n const num = readUIntLE(b, this._bits / 8);\n if (this._bits <= 32) {\n return Number(num);\n } else {\n return num;\n }\n }\n\n get name() {\n return `nat${this._bits}`;\n }\n\n public valueToString(x: bigint | number) {\n return x.toString();\n }\n}\n\n/**\n * Represents an IDL Array\n *\n * Arrays of fixed-sized nat/int type (e.g. nat8), are encoded from and decoded to TypedArrays (e.g. Uint8Array).\n * Arrays of float or other non-primitive types are encoded/decoded as untyped array in Javascript.\n *\n * @param {Type} t\n */\nexport class VecClass extends ConstructType {\n // If true, this vector is really a blob and we can just use memcpy.\n //\n // NOTE:\n // With support of encoding/dencoding of TypedArrays, this optimization is\n // only used when plain array of bytes are passed as encoding input in order\n // to be backward compatible.\n private _blobOptimization = false;\n\n constructor(protected _type: Type) {\n super();\n if (_type instanceof FixedNatClass && _type._bits === 8) {\n this._blobOptimization = true;\n }\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitVec(this, this._type, d);\n }\n\n public covariant(x: any): x is T[] {\n // Special case for ArrayBuffer\n const bits =\n this._type instanceof FixedNatClass\n ? this._type._bits\n : this._type instanceof FixedIntClass\n ? this._type._bits\n : 0;\n return (\n (ArrayBuffer.isView(x) && bits == (x as any).BYTES_PER_ELEMENT * 8) ||\n (Array.isArray(x) && x.every(v => this._type.covariant(v)))\n );\n }\n\n public encodeValue(x: T[]) {\n const len = lebEncode(x.length);\n if (this._blobOptimization) {\n return concat(len, new Uint8Array(x as unknown as number[]));\n }\n if (ArrayBuffer.isView(x)) {\n return concat(len, new Uint8Array(x.buffer));\n }\n const buf = new Pipe(new ArrayBuffer(len.byteLength + x.length), 0);\n buf.write(len);\n for (const d of x) {\n const encoded = this._type.encodeValue(d);\n buf.write(new Uint8Array(encoded));\n }\n return buf.buffer;\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Vector);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): T[] {\n const vec = this.checkType(t);\n if (!(vec instanceof VecClass)) {\n throw new Error('Not a vector type');\n }\n const len = Number(lebDecode(b));\n\n if (this._type instanceof FixedNatClass) {\n if (this._type._bits == 8) {\n return new Uint8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Uint16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Uint32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigUint64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n if (this._type instanceof FixedIntClass) {\n if (this._type._bits == 8) {\n return new Int8Array(b.read(len)) as unknown as T[];\n }\n if (this._type._bits == 16) {\n return new Int16Array(b.read(len * 2)) as unknown as T[];\n }\n if (this._type._bits == 32) {\n return new Int32Array(b.read(len * 4)) as unknown as T[];\n }\n if (this._type._bits == 64) {\n return new BigInt64Array(b.read(len * 8)) as unknown as T[];\n }\n }\n\n const rets: T[] = [];\n for (let i = 0; i < len; i++) {\n rets.push(this._type.decodeValue(b, vec._type));\n }\n return rets;\n }\n\n get name() {\n return `vec ${this._type.name}`;\n }\n\n public display() {\n return `vec ${this._type.display()}`;\n }\n\n public valueToString(x: T[]) {\n const elements = x.map(e => this._type.valueToString(e));\n return 'vec {' + elements.join('; ') + '}';\n }\n}\n\n/**\n * Represents an IDL Option\n * @param {Type} t\n */\nexport class OptClass extends ConstructType<[T] | []> {\n constructor(protected _type: Type) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitOpt(this, this._type, d);\n }\n\n public covariant(x: any): x is [T] | [] {\n return Array.isArray(x) && (x.length === 0 || (x.length === 1 && this._type.covariant(x[0])));\n }\n\n public encodeValue(x: [T] | []) {\n if (x.length === 0) {\n return new Uint8Array([0]);\n } else {\n return concat(new Uint8Array([1]), this._type.encodeValue(x[0]));\n }\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._type.buildTypeTable(typeTable);\n\n const opCode = slebEncode(IDLTypeIds.Opt);\n const buffer = this._type.encodeType(typeTable);\n typeTable.add(this, concat(opCode, buffer));\n }\n\n public decodeValue(b: Pipe, t: Type): [T] | [] {\n const opt = this.checkType(t);\n if (!(opt instanceof OptClass)) {\n throw new Error('Not an option type');\n }\n switch (safeReadUint8(b)) {\n case 0:\n return [];\n case 1:\n return [this._type.decodeValue(b, opt._type)];\n default:\n throw new Error('Not an option value');\n }\n }\n\n get name() {\n return `opt ${this._type.name}`;\n }\n\n public display() {\n return `opt ${this._type.display()}`;\n }\n\n public valueToString(x: [T] | []) {\n if (x.length === 0) {\n return 'null';\n } else {\n return `opt ${this._type.valueToString(x[0])}`;\n }\n }\n}\n\n/**\n * Represents an IDL Record\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class RecordClass extends ConstructType> {\n protected readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitRecord(this, this._fields, d);\n }\n\n public tryAsTuple(): Type[] | null {\n const res: Type[] = [];\n for (let i = 0; i < this._fields.length; i++) {\n const [key, type] = this._fields[i];\n if (key !== `_${i}_`) {\n return null;\n }\n res.push(type);\n }\n return res;\n }\n\n public covariant(x: any): x is Record {\n return (\n typeof x === 'object' &&\n this._fields.every(([k, t]) => {\n // eslint-disable-next-line\n if (!x.hasOwnProperty(k)) {\n throw new Error(`Record is missing key \"${k}\".`);\n }\n return t.covariant(x[k]);\n })\n );\n }\n\n public encodeValue(x: Record) {\n const values = this._fields.map(([key]) => x[key]);\n const bufs = zipWith(this._fields, values, ([, c], d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, value]) => value.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Record);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(T)),\n );\n\n T.add(this, concat(opCode, len, concat(...fields)));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const record = this.checkType(t);\n if (!(record instanceof RecordClass)) {\n throw new Error('Not a record type');\n }\n const x: Record = {};\n\n let expectedRecordIdx = 0;\n let actualRecordIdx = 0;\n while (actualRecordIdx < record._fields.length) {\n const [hash, type] = record._fields[actualRecordIdx];\n\n if (expectedRecordIdx >= this._fields.length) {\n // skip unexpected left over fields present on the wire\n type.decodeValue(b, type);\n actualRecordIdx++;\n continue;\n }\n\n const [expectKey, expectType] = this._fields[expectedRecordIdx];\n if (idlLabelToId(this._fields[expectedRecordIdx][0]) !== idlLabelToId(hash)) {\n // the current field on the wire does not match the expected field\n\n // skip expected optional fields that are not present on the wire\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n x[expectKey] = [];\n expectedRecordIdx++;\n continue;\n }\n\n // skip unexpected interspersed fields present on the wire\n type.decodeValue(b, type);\n actualRecordIdx++;\n continue;\n }\n\n x[expectKey] = expectType.decodeValue(b, type);\n expectedRecordIdx++;\n actualRecordIdx++;\n }\n\n // initialize left over expected optional fields\n for (const [expectKey, expectType] of this._fields.slice(expectedRecordIdx)) {\n if (expectType instanceof OptClass || expectType instanceof ReservedClass) {\n // TODO this assumes null value in opt is represented as []\n x[expectKey] = [];\n } else {\n throw new Error('Cannot find required field ' + expectKey);\n }\n }\n return x;\n }\n\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `record {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record) {\n const values = this._fields.map(([key]) => x[key]);\n const fields = zipWith(this._fields, values, ([k, c], d) => k + '=' + c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents Tuple, a syntactic sugar for Record.\n * @param {Type} components\n */\nexport class TupleClass extends RecordClass {\n protected readonly _components: Type[];\n\n constructor(_components: Type[]) {\n const x: Record = {};\n _components.forEach((e, i) => (x['_' + i + '_'] = e));\n super(x);\n this._components = _components;\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitTuple(this, this._components, d);\n }\n\n public covariant(x: any): x is T {\n // `>=` because tuples can be covariant when encoded.\n return (\n Array.isArray(x) &&\n x.length >= this._fields.length &&\n this._components.every((t, i) => t.covariant(x[i]))\n );\n }\n\n public encodeValue(x: any[]) {\n const bufs = zipWith(this._components, x, (c, d) => c.encodeValue(d));\n return concat(...bufs);\n }\n\n public decodeValue(b: Pipe, t: Type): T {\n const tuple = this.checkType(t);\n if (!(tuple instanceof TupleClass)) {\n throw new Error('not a tuple type');\n }\n if (tuple._components.length < this._components.length) {\n throw new Error('tuple mismatch');\n }\n const res = [];\n for (const [i, wireType] of tuple._components.entries()) {\n if (i >= this._components.length) {\n // skip value\n wireType.decodeValue(b, wireType);\n } else {\n res.push(this._components[i].decodeValue(b, wireType));\n }\n }\n return res as T;\n }\n\n public display() {\n const fields = this._components.map(value => value.display());\n return `record {${fields.join('; ')}}`;\n }\n\n public valueToString(values: any[]) {\n const fields = zipWith(this._components, values, (c, d) => c.valueToString(d));\n return `record {${fields.join('; ')}}`;\n }\n}\n\n/**\n * Represents an IDL Variant\n * @param {Object} [fields] - mapping of function name to Type\n */\nexport class VariantClass extends ConstructType> {\n private readonly _fields: Array<[string, Type]>;\n\n constructor(fields: Record = {}) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitVariant(this, this._fields, d);\n }\n\n public covariant(x: any): x is Record {\n return (\n typeof x === 'object' &&\n Object.entries(x).length === 1 &&\n this._fields.every(([k, v]) => {\n // eslint-disable-next-line\n return !x.hasOwnProperty(k) || v.covariant(x[k]);\n })\n );\n }\n\n public encodeValue(x: Record) {\n for (let i = 0; i < this._fields.length; i++) {\n const [name, type] = this._fields[i];\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const idx = lebEncode(i);\n const buf = type.encodeValue(x[name]);\n\n return concat(idx, buf);\n }\n }\n throw Error('Variant has no data: ' + x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n this._fields.forEach(([, type]) => {\n type.buildTypeTable(typeTable);\n });\n const opCode = slebEncode(IDLTypeIds.Variant);\n const len = lebEncode(this._fields.length);\n const fields = this._fields.map(([key, value]) =>\n concat(lebEncode(idlLabelToId(key)), value.encodeType(typeTable)),\n );\n typeTable.add(this, concat(opCode, len, ...fields));\n }\n\n public decodeValue(b: Pipe, t: Type) {\n const variant = this.checkType(t);\n if (!(variant instanceof VariantClass)) {\n throw new Error('Not a variant type');\n }\n const idx = Number(lebDecode(b));\n if (idx >= variant._fields.length) {\n throw Error('Invalid variant index: ' + idx);\n }\n const [wireHash, wireType] = variant._fields[idx];\n for (const [key, expectType] of this._fields) {\n if (idlLabelToId(wireHash) === idlLabelToId(key)) {\n const value = expectType.decodeValue(b, wireType);\n return { [key]: value };\n }\n }\n throw new Error('Cannot find field hash ' + wireHash);\n }\n\n get name() {\n const fields = this._fields.map(([key, type]) => key + ':' + type.name);\n return `variant {${fields.join('; ')}}`;\n }\n\n public display() {\n const fields = this._fields.map(\n ([key, type]) => key + (type.name === 'null' ? '' : `:${type.display()}`),\n );\n return `variant {${fields.join('; ')}}`;\n }\n\n public valueToString(x: Record) {\n for (const [name, type] of this._fields) {\n // eslint-disable-next-line\n if (x.hasOwnProperty(name)) {\n const value = type.valueToString(x[name]);\n if (value === 'null') {\n return `variant {${name}}`;\n } else {\n return `variant {${name}=${value}}`;\n }\n }\n }\n throw new Error('Variant has no data: ' + x);\n }\n}\n\n/**\n * Represents a reference to an IDL type, used for defining recursive data\n * types.\n */\nexport class RecClass extends ConstructType {\n private static _counter = 0;\n private _id = RecClass._counter++;\n private _type: ConstructType | undefined = undefined;\n\n public accept(v: Visitor, d: D): R {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return v.visitRec(this, this._type, d);\n }\n\n public fill(t: ConstructType) {\n this._type = t;\n }\n\n public getType() {\n return this._type;\n }\n\n public covariant(x: any): x is T {\n return this._type ? this._type.covariant(x) : false;\n }\n\n public encodeValue(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.encodeValue(x);\n }\n\n public _buildTypeTableImpl(typeTable: TypeTable) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n typeTable.add(this, new Uint8Array([]));\n this._type.buildTypeTable(typeTable);\n typeTable.merge(this, this._type.name);\n }\n\n public decodeValue(b: Pipe, t: Type) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.decodeValue(b, t);\n }\n\n get name() {\n return `rec_${this._id}`;\n }\n\n public display() {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return `μ${this.name}.${this._type.name}`;\n }\n\n public valueToString(x: T) {\n if (!this._type) {\n throw Error('Recursive type uninitialized.');\n }\n return this._type.valueToString(x);\n }\n}\n\nfunction decodePrincipalId(b: Pipe): PrincipalId {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode principal');\n }\n\n const len = Number(lebDecode(b));\n return PrincipalId.fromUint8Array(new Uint8Array(safeRead(b, len)));\n}\n\n/**\n * Represents an IDL principal reference\n */\nexport class PrincipalClass extends PrimitiveType {\n public accept(v: Visitor, d: D): R {\n return v.visitPrincipal(this, d);\n }\n\n public covariant(x: any): x is PrincipalId {\n return x && x._isPrincipal;\n }\n\n public encodeValue(x: PrincipalId): ArrayBuffer {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.byteLength);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public encodeType() {\n return slebEncode(IDLTypeIds.Principal);\n }\n\n public decodeValue(b: Pipe, t: Type): PrincipalId {\n this.checkType(t);\n return decodePrincipalId(b);\n }\n\n get name() {\n return 'principal';\n }\n public valueToString(x: PrincipalId) {\n return `${this.name} \"${x.toText()}\"`;\n }\n}\n\n/**\n * Represents an IDL function reference.\n * @param argTypes Argument types.\n * @param retTypes Return types.\n * @param annotations Function annotations.\n */\nexport class FuncClass extends ConstructType<[PrincipalId, string]> {\n public static argsToString(types: Type[], v: any[]) {\n if (types.length !== v.length) {\n throw new Error('arity mismatch');\n }\n return '(' + types.map((t, i) => t.valueToString(v[i])).join(', ') + ')';\n }\n\n constructor(public argTypes: Type[], public retTypes: Type[], public annotations: string[] = []) {\n super();\n }\n\n public accept(v: Visitor, d: D): R {\n return v.visitFunc(this, d);\n }\n public covariant(x: any): x is [PrincipalId, string] {\n return (\n Array.isArray(x) && x.length === 2 && x[0] && x[0]._isPrincipal && typeof x[1] === 'string'\n );\n }\n\n public encodeValue([principal, methodName]: [PrincipalId, string]) {\n const buf = principal.toUint8Array();\n const len = lebEncode(buf.byteLength);\n const canister = concat(new Uint8Array([1]), len, buf);\n\n const method = new TextEncoder().encode(methodName);\n const methodLen = lebEncode(method.byteLength);\n return concat(new Uint8Array([1]), canister, methodLen, method);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this.argTypes.forEach(arg => arg.buildTypeTable(T));\n this.retTypes.forEach(arg => arg.buildTypeTable(T));\n\n const opCode = slebEncode(IDLTypeIds.Func);\n const argLen = lebEncode(this.argTypes.length);\n const args = concat(...this.argTypes.map(arg => arg.encodeType(T)));\n const retLen = lebEncode(this.retTypes.length);\n const rets = concat(...this.retTypes.map(arg => arg.encodeType(T)));\n const annLen = lebEncode(this.annotations.length);\n const anns = concat(...this.annotations.map(a => this.encodeAnnotation(a)));\n\n T.add(this, concat(opCode, argLen, args, retLen, rets, annLen, anns));\n }\n\n public decodeValue(b: Pipe): [PrincipalId, string] {\n const x = safeReadUint8(b);\n if (x !== 1) {\n throw new Error('Cannot decode function reference');\n }\n const canister = decodePrincipalId(b);\n\n const mLen = Number(lebDecode(b));\n const buf = safeRead(b, mLen);\n const decoder = new TextDecoder('utf8', { fatal: true });\n const method = decoder.decode(buf);\n\n return [canister, method];\n }\n\n get name() {\n const args = this.argTypes.map(arg => arg.name).join(', ');\n const rets = this.retTypes.map(arg => arg.name).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) -> (${rets})${annon}`;\n }\n\n public valueToString([principal, str]: [PrincipalId, string]) {\n return `func \"${principal.toText()}\".${str}`;\n }\n\n public display(): string {\n const args = this.argTypes.map(arg => arg.display()).join(', ');\n const rets = this.retTypes.map(arg => arg.display()).join(', ');\n const annon = ' ' + this.annotations.join(' ');\n return `(${args}) → (${rets})${annon}`;\n }\n\n private encodeAnnotation(ann: string): ArrayBuffer {\n if (ann === 'query') {\n return new Uint8Array([1]);\n } else if (ann === 'oneway') {\n return new Uint8Array([2]);\n } else {\n throw new Error('Illegal function annotation');\n }\n }\n}\n\nexport class ServiceClass extends ConstructType {\n public readonly _fields: Array<[string, FuncClass]>;\n constructor(fields: Record) {\n super();\n this._fields = Object.entries(fields).sort((a, b) => idlLabelToId(a[0]) - idlLabelToId(b[0]));\n }\n public accept(v: Visitor, d: D): R {\n return v.visitService(this, d);\n }\n public covariant(x: any): x is PrincipalId {\n return x && x._isPrincipal;\n }\n\n public encodeValue(x: PrincipalId) {\n const buf = x.toUint8Array();\n const len = lebEncode(buf.length);\n return concat(new Uint8Array([1]), len, buf);\n }\n\n public _buildTypeTableImpl(T: TypeTable) {\n this._fields.forEach(([_, func]) => func.buildTypeTable(T));\n const opCode = slebEncode(IDLTypeIds.Service);\n const len = lebEncode(this._fields.length);\n const meths = this._fields.map(([label, func]) => {\n const labelBuf = new TextEncoder().encode(label);\n const labelLen = lebEncode(labelBuf.length);\n return concat(labelLen, labelBuf, func.encodeType(T));\n });\n\n T.add(this, concat(opCode, len, ...meths));\n }\n\n public decodeValue(b: Pipe): PrincipalId {\n return decodePrincipalId(b);\n }\n get name() {\n const fields = this._fields.map(([key, value]) => key + ':' + value.name);\n return `service {${fields.join('; ')}}`;\n }\n\n public valueToString(x: PrincipalId) {\n return `service \"${x.toText()}\"`;\n }\n}\n\n/**\n *\n * @param x\n * @returns {string}\n */\nfunction toReadableString(x: unknown): string {\n return JSON.stringify(x, (_key, value) =>\n typeof value === 'bigint' ? `BigInt(${value})` : value,\n );\n}\n\n/**\n * Encode a array of values\n * @param argTypes\n * @param args\n * @returns {Buffer} serialised value\n */\nexport function encode(argTypes: Array>, args: any[]): ArrayBuffer {\n if (args.length < argTypes.length) {\n throw Error('Wrong number of message arguments');\n }\n\n const typeTable = new TypeTable();\n argTypes.forEach(t => t.buildTypeTable(typeTable));\n\n const magic = new TextEncoder().encode(magicNumber);\n const table = typeTable.encode();\n const len = lebEncode(args.length);\n const typs = concat(...argTypes.map(t => t.encodeType(typeTable)));\n const vals = concat(\n ...zipWith(argTypes, args, (t, x) => {\n if (!t.covariant(x)) {\n throw new Error(`Invalid ${t.display()} argument: ${toReadableString(x)}`);\n }\n\n return t.encodeValue(x);\n }),\n );\n\n return concat(magic, table, len, typs, vals);\n}\n\n/**\n * Decode a binary value\n * @param retTypes - Types expected in the buffer.\n * @param bytes - hex-encoded string, or buffer.\n * @returns Value deserialised to JS type\n */\nexport function decode(retTypes: Type[], bytes: ArrayBuffer): JsonValue[] {\n const b = new Pipe(bytes);\n\n if (bytes.byteLength < magicNumber.length) {\n throw new Error('Message length smaller than magic number');\n }\n const magicBuffer = safeRead(b, magicNumber.length);\n const magic = new TextDecoder().decode(magicBuffer);\n if (magic !== magicNumber) {\n throw new Error('Wrong magic number: ' + JSON.stringify(magic));\n }\n\n function readTypeTable(pipe: Pipe): [Array<[IDLTypeIds, any]>, number[]] {\n const typeTable: Array<[IDLTypeIds, any]> = [];\n const len = Number(lebDecode(pipe));\n\n for (let i = 0; i < len; i++) {\n const ty = Number(slebDecode(pipe));\n switch (ty) {\n case IDLTypeIds.Opt:\n case IDLTypeIds.Vector: {\n const t = Number(slebDecode(pipe));\n typeTable.push([ty, t]);\n break;\n }\n case IDLTypeIds.Record:\n case IDLTypeIds.Variant: {\n const fields = [];\n let objectLength = Number(lebDecode(pipe));\n let prevHash;\n while (objectLength--) {\n const hash = Number(lebDecode(pipe));\n if (hash >= Math.pow(2, 32)) {\n throw new Error('field id out of 32-bit range');\n }\n if (typeof prevHash === 'number' && prevHash >= hash) {\n throw new Error('field id collision or not sorted');\n }\n prevHash = hash;\n const t = Number(slebDecode(pipe));\n fields.push([hash, t]);\n }\n typeTable.push([ty, fields]);\n break;\n }\n case IDLTypeIds.Func: {\n const args = [];\n let argLength = Number(lebDecode(pipe));\n while (argLength--) {\n args.push(Number(slebDecode(pipe)));\n }\n const returnValues = [];\n let returnValuesLength = Number(lebDecode(pipe));\n while (returnValuesLength--) {\n returnValues.push(Number(slebDecode(pipe)));\n }\n const annotations = [];\n let annotationLength = Number(lebDecode(pipe));\n while (annotationLength--) {\n const annotation = Number(lebDecode(pipe));\n switch (annotation) {\n case 1: {\n annotations.push('query');\n break;\n }\n case 2: {\n annotations.push('oneway');\n break;\n }\n default:\n throw new Error('unknown annotation');\n }\n }\n typeTable.push([ty, [args, returnValues, annotations]]);\n break;\n }\n case IDLTypeIds.Service: {\n let servLength = Number(lebDecode(pipe));\n const methods = [];\n while (servLength--) {\n const nameLength = Number(lebDecode(pipe));\n const funcName = new TextDecoder().decode(safeRead(pipe, nameLength));\n const funcType = slebDecode(pipe);\n methods.push([funcName, funcType]);\n }\n typeTable.push([ty, methods]);\n break;\n }\n default:\n throw new Error('Illegal op_code: ' + ty);\n }\n }\n\n const rawList: number[] = [];\n const length = Number(lebDecode(pipe));\n for (let i = 0; i < length; i++) {\n rawList.push(Number(slebDecode(pipe)));\n }\n return [typeTable, rawList];\n }\n const [rawTable, rawTypes] = readTypeTable(b);\n if (rawTypes.length < retTypes.length) {\n throw new Error('Wrong number of return values');\n }\n\n const table: RecClass[] = rawTable.map(_ => Rec());\n function getType(t: number): Type {\n if (t < -24) {\n throw new Error('future value not supported');\n }\n if (t < 0) {\n switch (t) {\n case -1:\n return Null;\n case -2:\n return Bool;\n case -3:\n return Nat;\n case -4:\n return Int;\n case -5:\n return Nat8;\n case -6:\n return Nat16;\n case -7:\n return Nat32;\n case -8:\n return Nat64;\n case -9:\n return Int8;\n case -10:\n return Int16;\n case -11:\n return Int32;\n case -12:\n return Int64;\n case -13:\n return Float32;\n case -14:\n return Float64;\n case -15:\n return Text;\n case -16:\n return Reserved;\n case -17:\n return Empty;\n case -24:\n return Principal;\n default:\n throw new Error('Illegal op_code: ' + t);\n }\n }\n if (t >= rawTable.length) {\n throw new Error('type index out of range');\n }\n return table[t];\n }\n function buildType(entry: [IDLTypeIds, any]): Type {\n switch (entry[0]) {\n case IDLTypeIds.Vector: {\n const ty = getType(entry[1]);\n return Vec(ty);\n }\n case IDLTypeIds.Opt: {\n const ty = getType(entry[1]);\n return Opt(ty);\n }\n case IDLTypeIds.Record: {\n const fields: Record = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n const record = Record(fields);\n const tuple = record.tryAsTuple();\n if (Array.isArray(tuple)) {\n return Tuple(...tuple);\n } else {\n return record;\n }\n }\n case IDLTypeIds.Variant: {\n const fields: Record = {};\n for (const [hash, ty] of entry[1]) {\n const name = `_${hash}_`;\n fields[name] = getType(ty);\n }\n return Variant(fields);\n }\n case IDLTypeIds.Func: {\n const [args, returnValues, annotations] = entry[1];\n return Func(\n args.map((t: number) => getType(t)),\n returnValues.map((t: number) => getType(t)),\n annotations,\n );\n }\n case IDLTypeIds.Service: {\n const rec: Record = {};\n const methods = entry[1] as [[string, number]];\n for (const [name, typeRef] of methods) {\n let type: Type | undefined = getType(typeRef);\n\n if (type instanceof RecClass) {\n // unpack reference type\n type = type.getType();\n }\n if (!(type instanceof FuncClass)) {\n throw new Error('Illegal service definition: services can only contain functions');\n }\n rec[name] = type;\n }\n return Service(rec);\n }\n default:\n throw new Error('Illegal op_code: ' + entry[0]);\n }\n }\n\n rawTable.forEach((entry, i) => {\n const t = buildType(entry);\n table[i].fill(t);\n });\n\n const types = rawTypes.map(t => getType(t));\n const output = retTypes.map((t, i) => {\n return t.decodeValue(b, types[i]);\n });\n\n // skip unused values\n for (let ind = retTypes.length; ind < types.length; ind++) {\n types[ind].decodeValue(b, types[ind]);\n }\n\n if (b.byteLength > 0) {\n throw new Error('decode: Left-over bytes');\n }\n\n return output;\n}\n\n/**\n * An Interface Factory, normally provided by a Candid code generation.\n */\nexport type InterfaceFactory = (idl: {\n IDL: {\n Empty: EmptyClass;\n Reserved: ReservedClass;\n Unknown: UnknownClass;\n Bool: BoolClass;\n Null: NullClass;\n Text: TextClass;\n Int: IntClass;\n Nat: NatClass;\n\n Float32: FloatClass;\n Float64: FloatClass;\n\n Int8: FixedIntClass;\n Int16: FixedIntClass;\n Int32: FixedIntClass;\n Int64: FixedIntClass;\n\n Nat8: FixedNatClass;\n Nat16: FixedNatClass;\n Nat32: FixedNatClass;\n Nat64: FixedNatClass;\n\n Principal: PrincipalClass;\n\n Tuple: typeof Tuple;\n Vec: typeof Vec;\n Opt: typeof Opt;\n Record: typeof Record;\n Variant: typeof Variant;\n Rec: typeof Rec;\n Func: typeof Func;\n\n Service(t: Record): ServiceClass;\n };\n}) => ServiceClass;\n\n// Export Types instances.\nexport const Empty = new EmptyClass();\nexport const Reserved = new ReservedClass();\n/**\n * Client-only type for deserializing unknown data. Not supported by Candid, and its use is discouraged.\n */\nexport const Unknown = new UnknownClass();\nexport const Bool = new BoolClass();\nexport const Null = new NullClass();\nexport const Text = new TextClass();\nexport const Int = new IntClass();\nexport const Nat = new NatClass();\n\nexport const Float32 = new FloatClass(32);\nexport const Float64 = new FloatClass(64);\n\nexport const Int8 = new FixedIntClass(8);\nexport const Int16 = new FixedIntClass(16);\nexport const Int32 = new FixedIntClass(32);\nexport const Int64 = new FixedIntClass(64);\n\nexport const Nat8 = new FixedNatClass(8);\nexport const Nat16 = new FixedNatClass(16);\nexport const Nat32 = new FixedNatClass(32);\nexport const Nat64 = new FixedNatClass(64);\n\nexport const Principal = new PrincipalClass();\n\n/**\n *\n * @param types array of any types\n * @returns TupleClass from those types\n */\nexport function Tuple(...types: T): TupleClass {\n return new TupleClass(types);\n}\n/**\n *\n * @param t IDL Type\n * @returns VecClass from that type\n */\nexport function Vec(t: Type): VecClass {\n return new VecClass(t);\n}\n/**\n *\n * @param t IDL Type\n * @returns OptClass of Type\n */\nexport function Opt(t: Type): OptClass {\n return new OptClass(t);\n}\n/**\n *\n * @param t Record of string and IDL Type\n * @returns RecordClass of string and Type\n */\nexport function Record(t: Record): RecordClass {\n return new RecordClass(t);\n}\n\n/**\n *\n * @param fields Record of string and IDL Type\n * @returns VariantClass\n */\nexport function Variant(fields: Record): VariantClass {\n return new VariantClass(fields);\n}\n/**\n *\n * @returns new RecClass\n */\nexport function Rec(): RecClass {\n return new RecClass();\n}\n\n/**\n *\n * @param args array of IDL Types\n * @param ret array of IDL Types\n * @param annotations array of strings, [] by default\n * @returns new FuncClass\n */\nexport function Func(args: Type[], ret: Type[], annotations: string[] = []): FuncClass {\n return new FuncClass(args, ret, annotations);\n}\n\n/**\n *\n * @param t Record of string and FuncClass\n * @returns ServiceClass\n */\nexport function Service(t: Record): ServiceClass {\n return new ServiceClass(t);\n}\n","import { lebEncode } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport borc from 'borc';\nimport { sha256 as jsSha256 } from 'js-sha256';\nimport { compare, concat } from './utils/buffer';\n\nexport type RequestId = ArrayBuffer & { __requestId__: void };\n\n/**\n * sha256 hash the provided Buffer\n * @param data - input to hash function\n */\nexport function hash(data: ArrayBuffer): ArrayBuffer {\n return jsSha256.create().update(new Uint8Array(data)).arrayBuffer();\n}\n\ninterface ToHashable {\n toHash(): unknown;\n}\n\n/**\n *\n * @param value unknown value\n * @returns ArrayBuffer\n */\nexport function hashValue(value: unknown): ArrayBuffer {\n if (value instanceof borc.Tagged) {\n return hashValue(value.value);\n } else if (typeof value === 'string') {\n return hashString(value);\n } else if (typeof value === 'number') {\n return hash(lebEncode(value));\n } else if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n return hash(value as ArrayBuffer);\n } else if (Array.isArray(value)) {\n const vals = value.map(hashValue);\n return hash(concat(...vals));\n } else if (value && typeof value === 'object' && (value as any)._isPrincipal) {\n return hash((value as Principal).toUint8Array());\n } else if (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as ToHashable).toHash === 'function'\n ) {\n return hashValue((value as ToHashable).toHash());\n // TODO This should be move to a specific async method as the webauthn flow required\n // the flow to be synchronous to ensure Safari touch id works.\n // } else if (value instanceof Promise) {\n // return value.then(x => hashValue(x));\n } else if (typeof value === 'bigint') {\n // Do this check much later than the other bigint check because this one is much less\n // type-safe.\n // So we want to try all the high-assurance type guards before this 'probable' one.\n return hash(lebEncode(value));\n }\n throw Object.assign(new Error(`Attempt to hash a value of unsupported type: ${value}`), {\n // include so logs/callers can understand the confusing value.\n // (when stringified in error message, prototype info is lost)\n value,\n });\n}\n\nconst hashString = (value: string): ArrayBuffer => {\n const encoded = new TextEncoder().encode(value);\n return hash(encoded);\n};\n\n/**\n * Get the RequestId of the provided ic-ref request.\n * RequestId is the result of the representation-independent-hash function.\n * https://sdk.dfinity.org/docs/interface-spec/index.html#hash-of-map\n * @param request - ic-ref request to hash into RequestId\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function requestIdOf(request: Record): RequestId {\n const hashed: Array<[ArrayBuffer, ArrayBuffer]> = Object.entries(request)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]: [string, unknown]) => {\n const hashedKey = hashString(key);\n const hashedValue = hashValue(value);\n\n return [hashedKey, hashedValue] as [ArrayBuffer, ArrayBuffer];\n });\n\n const traversed: Array<[ArrayBuffer, ArrayBuffer]> = hashed;\n\n const sorted: Array<[ArrayBuffer, ArrayBuffer]> = traversed.sort(([k1], [k2]) => {\n return compare(k1, k2);\n });\n\n const concatenated: ArrayBuffer = concat(...sorted.map(x => concat(...x)));\n const requestId = hash(concatenated) as RequestId;\n return requestId;\n}\n","import { Principal } from '@dfinity/principal';\nimport { HttpAgentRequest } from './agent/http/types';\nimport { requestIdOf } from './request_id';\nimport { concat, toHex } from './utils/buffer';\n\nconst domainSeparator = new TextEncoder().encode('\\x0Aic-request');\n\n/**\n * A Key Pair, containing a secret and public key.\n */\nexport interface KeyPair {\n secretKey: ArrayBuffer;\n publicKey: PublicKey;\n}\n\n/**\n * A public key that is DER encoded. This is a branded ArrayBuffer.\n */\nexport type DerEncodedPublicKey = ArrayBuffer & { __derEncodedPublicKey__?: void };\n\n/**\n * A signature array buffer.\n */\nexport type Signature = ArrayBuffer & { __signature__: void };\n\n/**\n * A Public Key implementation.\n */\nexport interface PublicKey {\n // Get the public key bytes encoded with DER.\n toDer(): DerEncodedPublicKey;\n}\n\n/**\n * A General Identity object. This does not have to be a private key (for example,\n * the Anonymous identity), but it must be able to transform request.\n */\nexport interface Identity {\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n getPrincipal(): Principal;\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n */\n transformRequest(request: HttpAgentRequest): Promise;\n}\n\n/**\n * An Identity that can sign blobs.\n */\nexport abstract class SignIdentity implements Identity {\n protected _principal: Principal | undefined;\n\n /**\n * Returns the public key that would match this identity's signature.\n */\n public abstract getPublicKey(): PublicKey;\n\n /**\n * Signs a blob of data, with this identity's private key.\n */\n public abstract sign(blob: ArrayBuffer): Promise;\n\n /**\n * Get the principal represented by this identity. Normally should be a\n * `Principal.selfAuthenticating()`.\n */\n public getPrincipal(): Principal {\n if (!this._principal) {\n this._principal = Principal.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()));\n }\n return this._principal;\n }\n\n /**\n * Transform a request into a signed version of the request. This is done last\n * after the transforms on the body of a request. The returned object can be\n * anything, but must be serializable to CBOR.\n * @param request - internet computer request to transform\n */\n public async transformRequest(request: HttpAgentRequest): Promise {\n const { body, ...fields } = request;\n const requestId = await requestIdOf(body);\n return {\n ...fields,\n body: {\n content: body,\n sender_pubkey: this.getPublicKey().toDer(),\n sender_sig: await this.sign(concat(domainSeparator, requestId)),\n },\n };\n }\n}\n\nexport class AnonymousIdentity implements Identity {\n public getPrincipal(): Principal {\n return Principal.anonymous();\n }\n\n public async transformRequest(request: HttpAgentRequest): Promise {\n return {\n ...request,\n body: { content: request.body },\n };\n }\n}\n\n/*\n * We need to communicate with other agents on the page about identities,\n * but those messages may need to go across boundaries where it's not possible to\n * serialize/deserialize object prototypes easily.\n * So these are lightweight, serializable objects that contain enough information to recreate\n * SignIdentities, but don't commit to having all methods of SignIdentity.\n *\n * Use Case:\n * * DOM Events that let differently-versioned components communicate to one another about\n * Identities, even if they're using slightly different versions of agent packages to\n * create/interpret them.\n */\nexport interface AnonymousIdentityDescriptor {\n type: 'AnonymousIdentity';\n}\nexport interface PublicKeyIdentityDescriptor {\n type: 'PublicKeyIdentity';\n publicKey: string;\n}\nexport type IdentityDescriptor = AnonymousIdentityDescriptor | PublicKeyIdentityDescriptor;\n\n/**\n * Create an IdentityDescriptor from a @dfinity/authentication Identity\n * @param identity - identity describe in returned descriptor\n */\nexport function createIdentityDescriptor(\n identity: SignIdentity | AnonymousIdentity,\n): IdentityDescriptor {\n const identityIndicator: IdentityDescriptor =\n 'getPublicKey' in identity\n ? { type: 'PublicKeyIdentity', publicKey: toHex(identity.getPublicKey().toDer()) }\n : { type: 'AnonymousIdentity' };\n return identityIndicator;\n}\n","/**\n * Concatenate multiple array buffers.\n * @param buffers The buffers to concatenate.\n */\nexport function concat(...buffers: ArrayBuffer[]): ArrayBuffer {\n const result = new Uint8Array(buffers.reduce((acc, curr) => acc + curr.byteLength, 0));\n let index = 0;\n for (const b of buffers) {\n result.set(new Uint8Array(b), index);\n index += b.byteLength;\n }\n return result.buffer;\n}\n\n/**\n * Transforms a buffer to an hexadecimal string. This will use the buffer as an Uint8Array.\n * @param buffer The buffer to return the hexadecimal string of.\n */\nexport function toHex(buffer: ArrayBuffer): string {\n return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')).join('');\n}\n\nconst hexRe = new RegExp(/^([0-9A-F]{2})*$/i);\n\n/**\n * Transforms a hexadecimal string into an array buffer.\n * @param hex The hexadecimal string to use.\n */\nexport function fromHex(hex: string): ArrayBuffer {\n if (!hexRe.test(hex)) {\n throw new Error('Invalid hexadecimal string.');\n }\n const buffer = [...hex]\n .reduce((acc, curr, i) => {\n // tslint:disable-next-line:no-bitwise\n acc[(i / 2) | 0] = (acc[(i / 2) | 0] || '') + curr;\n return acc;\n }, [] as string[])\n .map(x => Number.parseInt(x, 16));\n\n return new Uint8Array(buffer).buffer;\n}\n\nexport function compare(b1: ArrayBuffer, b2: ArrayBuffer): number {\n if (b1.byteLength !== b2.byteLength) {\n return b1.byteLength - b2.byteLength;\n }\n\n const u1 = new Uint8Array(b1);\n const u2 = new Uint8Array(b2);\n for (let i = 0; i < u1.length; i++) {\n if (u1[i] !== u2[i]) {\n return u1[i] - u2[i];\n }\n }\n return 0;\n}\n","// tslint:disable:max-classes-per-file\n// This file is based on:\n// tslint:disable-next-line: max-line-length\n// https://github.com/dfinity-lab/dfinity/blob/9bca65f8edd65701ea6bdb00e0752f9186bbc893/docs/spec/public/index.adoc#cbor-encoding-of-requests-and-responses\nimport borc from 'borc';\nimport * as cbor from 'simple-cbor';\nimport { CborEncoder, SelfDescribeCborSerializer } from 'simple-cbor';\nimport { Principal } from '@dfinity/principal';\nimport { concat, fromHex } from './utils/buffer';\n\n// We are using hansl/simple-cbor for CBOR serialization, to avoid issues with\n// encoding the uint64 values that the HTTP handler of the client expects for\n// canister IDs. However, simple-cbor does not yet provide deserialization so\n// we are using `Uint8Array` so that we can use the dignifiedquire/borc CBOR\n// decoder.\n\nclass PrincipalEncoder implements CborEncoder {\n public get name() {\n return 'Principal';\n }\n\n public get priority() {\n return 0;\n }\n\n public match(value: any): boolean {\n return value && value._isPrincipal === true;\n }\n\n public encode(v: Principal): cbor.CborValue {\n return cbor.value.bytes(v.toUint8Array());\n }\n}\n\nclass BufferEncoder implements CborEncoder {\n public get name() {\n return 'Buffer';\n }\n\n public get priority() {\n return 1;\n }\n\n public match(value: any): boolean {\n return value instanceof ArrayBuffer || ArrayBuffer.isView(value);\n }\n\n public encode(v: ArrayBuffer): cbor.CborValue {\n return cbor.value.bytes(new Uint8Array(v));\n }\n}\n\nclass BigIntEncoder implements CborEncoder {\n public get name() {\n return 'BigInt';\n }\n\n public get priority() {\n return 1;\n }\n\n public match(value: any): boolean {\n return typeof value === `bigint`;\n }\n\n public encode(v: bigint): cbor.CborValue {\n // Always use a bigint encoding.\n if (v > BigInt(0)) {\n return cbor.value.tagged(2, cbor.value.bytes(fromHex(v.toString(16))));\n } else {\n return cbor.value.tagged(3, cbor.value.bytes(fromHex((BigInt('-1') * v).toString(16))));\n }\n }\n}\n\nconst serializer = SelfDescribeCborSerializer.withDefaultEncoders(true);\nserializer.addEncoder(new PrincipalEncoder());\nserializer.addEncoder(new BufferEncoder());\nserializer.addEncoder(new BigIntEncoder());\n\nexport enum CborTag {\n Uint64LittleEndian = 71,\n Semantic = 55799,\n}\n\n/**\n * Encode a JavaScript value into CBOR.\n */\nexport function encode(value: any): ArrayBuffer {\n return serializer.serialize(value);\n}\n\nfunction decodePositiveBigInt(buf: Uint8Array): bigint {\n const len = buf.byteLength;\n let res = BigInt(0);\n for (let i = 0; i < len; i++) {\n // tslint:disable-next-line:no-bitwise\n res = res * BigInt(0x100) + BigInt(buf[i]);\n }\n\n return res;\n}\n\n// A BORC subclass that decodes byte strings to ArrayBuffer instead of the Buffer class.\nclass Uint8ArrayDecoder extends borc.Decoder {\n public createByteString(raw: ArrayBuffer[]): ArrayBuffer {\n return concat(...raw);\n }\n\n public createByteStringFromHeap(start: number, end: number): ArrayBuffer {\n if (start === end) {\n return new ArrayBuffer(0);\n }\n\n return new Uint8Array((this as any)._heap.slice(start, end));\n }\n}\n\nexport function decode(input: ArrayBuffer): T {\n const buffer = new Uint8Array(input);\n const decoder = new Uint8ArrayDecoder({\n size: buffer.byteLength,\n tags: {\n // Override tags 2 and 3 for BigInt support (borc supports only BigNumber).\n 2: val => decodePositiveBigInt(val),\n 3: val => -decodePositiveBigInt(val),\n [CborTag.Semantic]: (value: T): T => value,\n },\n });\n\n return decoder.decodeFirst(buffer);\n}\n","import type { Principal } from '@dfinity/principal';\nimport { Expiry } from './transforms';\nimport { lebEncode } from '@dfinity/candid';\n\n/**\n * @internal\n */\nexport const enum Endpoint {\n Query = 'read',\n ReadState = 'read_state',\n Call = 'call',\n}\n\n// An HttpAgent request, before it gets encoded and sent to the server.\n// We create an empty request that we will fill later.\nexport type HttpAgentRequest =\n | HttpAgentQueryRequest\n | HttpAgentSubmitRequest\n | HttpAgentReadStateRequest;\n\nexport interface HttpAgentBaseRequest {\n readonly endpoint: Endpoint;\n request: RequestInit;\n}\n\nexport interface HttpAgentSubmitRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Call;\n body: CallRequest;\n}\n\nexport interface HttpAgentQueryRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.Query;\n body: ReadRequest;\n}\n\nexport interface HttpAgentReadStateRequest extends HttpAgentBaseRequest {\n readonly endpoint: Endpoint.ReadState;\n body: ReadRequest;\n}\n\nexport interface Signed {\n content: T;\n sender_pubkey: ArrayBuffer;\n sender_sig: ArrayBuffer;\n}\n\nexport interface UnSigned {\n content: T;\n}\n\nexport type Envelope = Signed | UnSigned;\n\nexport interface HttpAgentRequestTransformFn {\n (args: HttpAgentRequest): Promise;\n priority?: number;\n}\n\n// The fields in a \"call\" submit request.\n// tslint:disable:camel-case\nexport interface CallRequest extends Record {\n request_type: SubmitRequestType.Call;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n// tslint:enable:camel-case\n\n// The types of values allowed in the `request_type` field for submit requests.\nexport enum SubmitRequestType {\n Call = 'call',\n}\n\n// The types of values allowed in the `request_type` field for read requests.\nexport const enum ReadRequestType {\n Query = 'query',\n ReadState = 'read_state',\n}\n\n// The fields in a \"query\" read request.\nexport interface QueryRequest extends Record {\n request_type: ReadRequestType.Query;\n canister_id: Principal;\n method_name: string;\n arg: ArrayBuffer;\n sender: Uint8Array | Principal;\n ingress_expiry: Expiry;\n}\n\nexport interface ReadStateRequest extends Record {\n request_type: ReadRequestType.ReadState;\n paths: ArrayBuffer[][];\n ingress_expiry: Expiry;\n sender: Uint8Array | Principal;\n}\n\nexport type ReadRequest = QueryRequest | ReadStateRequest;\n\n// A Nonce that can be used for calls.\nexport type Nonce = Uint8Array & { __nonce__: void };\n\n/**\n * Create a random Nonce, based on date and a random suffix.\n */\nexport function makeNonce(): Nonce {\n // Encode 128 bits.\n const buffer = new ArrayBuffer(16);\n const view = new DataView(buffer);\n const now = BigInt(+Date.now());\n const randHi = Math.floor(Math.random() * 0xffffffff);\n const randLo = Math.floor(Math.random() * 0xffffffff);\n // Fix for IOS < 14.8 setBigUint64 absence\n if (typeof view.setBigUint64 === 'function') {\n view.setBigUint64(0, now);\n } else {\n const TWO_TO_THE_32 = BigInt(1) << BigInt(32);\n view.setUint32(0, Number(now >> BigInt(32)));\n view.setUint32(4, Number(now % TWO_TO_THE_32));\n }\n view.setUint32(8, randHi);\n view.setUint32(12, randLo);\n\n return buffer as Nonce;\n}\n","import { lebEncode } from '@dfinity/candid';\nimport * as cbor from 'simple-cbor';\nimport { Endpoint, HttpAgentRequest, HttpAgentRequestTransformFn, makeNonce, Nonce } from './types';\n\nconst NANOSECONDS_PER_MILLISECONDS = BigInt(1000000);\n\nconst REPLICA_PERMITTED_DRIFT_MILLISECONDS = BigInt(60 * 1000);\n\nexport class Expiry {\n private readonly _value: bigint;\n\n constructor(deltaInMSec: number) {\n // Use bigint because it can overflow the maximum number allowed in a double float.\n this._value =\n (BigInt(Date.now()) + BigInt(deltaInMSec) - REPLICA_PERMITTED_DRIFT_MILLISECONDS) *\n NANOSECONDS_PER_MILLISECONDS;\n }\n\n public toCBOR(): cbor.CborValue {\n // TODO: change this to take the minimum amount of space (it always takes 8 bytes now).\n return cbor.value.u64(this._value.toString(16), 16);\n }\n\n public toHash(): ArrayBuffer {\n return lebEncode(this._value);\n }\n}\n\n/**\n * Create a Nonce transform, which takes a function that returns a Buffer, and adds it\n * as the nonce to every call requests.\n * @param nonceFn A function that returns a buffer. By default uses a semi-random method.\n */\nexport function makeNonceTransform(nonceFn: () => Nonce = makeNonce): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n // Nonce are only useful for async calls, to prevent replay attacks. Other types of\n // calls don't need Nonce so we just skip creating one.\n if (request.endpoint === Endpoint.Call) {\n request.body.nonce = nonceFn();\n }\n };\n}\n\n/**\n * Create a transform that adds a delay (by default 5 minutes) to the expiry.\n *\n * @param delayInMilliseconds The delay to add to the call time, in milliseconds.\n */\nexport function makeExpiryTransform(delayInMilliseconds: number): HttpAgentRequestTransformFn {\n return async (request: HttpAgentRequest) => {\n request.body.ingress_expiry = new Expiry(delayInMilliseconds);\n };\n}\n","import { JsonObject } from '@dfinity/candid';\nimport { Principal } from '@dfinity/principal';\nimport { AgentError } from '../../errors';\nimport { AnonymousIdentity, Identity } from '../../auth';\nimport * as cbor from '../../cbor';\nimport { requestIdOf } from '../../request_id';\nimport { fromHex } from '../../utils/buffer';\nimport {\n Agent,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from '../api';\nimport { Expiry, makeNonceTransform } from './transforms';\nimport {\n CallRequest,\n Endpoint,\n HttpAgentRequest,\n HttpAgentRequestTransformFn,\n HttpAgentSubmitRequest,\n makeNonce,\n QueryRequest,\n ReadRequestType,\n SubmitRequestType,\n} from './types';\n\nexport * from './transforms';\nexport { Nonce, makeNonce } from './types';\n\nexport enum RequestStatusResponseStatus {\n Received = 'received',\n Processing = 'processing',\n Replied = 'replied',\n Rejected = 'rejected',\n Unknown = 'unknown',\n Done = 'done',\n}\n\n// Default delta for ingress expiry is 5 minutes.\nconst DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS = 5 * 60 * 1000;\n\n// Root public key for the IC, encoded as hex\nconst IC_ROOT_KEY =\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814' +\n 'c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d968' +\n '5f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484' +\n 'b01291091c5f87b98883463f98091a0baaae';\n\n// IC0 domain info\nconst IC0_DOMAIN = 'ic0.app';\nconst IC0_SUB_DOMAIN = '.ic0.app';\n\nclass HttpDefaultFetchError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\nexport class IdentityInvalidError extends AgentError {\n constructor(public readonly message: string) {\n super(message);\n }\n}\n\n// HttpAgent options that can be used at construction.\nexport interface HttpAgentOptions {\n // Another HttpAgent to inherit configuration (pipeline and fetch) of. This\n // is only used at construction.\n source?: HttpAgent;\n\n // A surrogate to the global fetch function. Useful for testing.\n fetch?: typeof fetch;\n\n // The host to use for the client. By default, uses the same host as\n // the current page.\n host?: string;\n\n // The principal used to send messages. This cannot be empty at the request\n // time (will throw).\n identity?: Identity | Promise;\n\n credentials?: {\n name: string;\n password?: string;\n };\n /**\n * Prevents the agent from providing a unique {@link Nonce} with each call.\n * Enabling may cause rate limiting of identical requests\n * at the boundary nodes.\n *\n * To add your own nonce generation logic, you can use the following:\n * @example\n * import {makeNonceTransform, makeNonce} from '@dfinity/agent';\n * const agent = new HttpAgent({ disableNonce: true });\n * agent.addTransform(makeNonceTransform(makeNonce);\n * @default false\n */\n disableNonce?: boolean;\n}\n\nfunction getDefaultFetch(): typeof fetch {\n let defaultFetch;\n\n if (typeof window !== 'undefined') {\n // Browser context\n if (window.fetch) {\n defaultFetch = window.fetch.bind(window);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present.',\n );\n }\n } else if (typeof global !== 'undefined') {\n // Node context\n if (global.fetch) {\n defaultFetch = global.fetch.bind(global);\n } else {\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available.',\n );\n }\n } else if (typeof self !== 'undefined') {\n if (self.fetch) {\n defaultFetch = self.fetch.bind(self);\n }\n }\n\n if (defaultFetch) {\n return defaultFetch;\n }\n throw new HttpDefaultFetchError(\n 'Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context.',\n );\n}\n\n// A HTTP agent allows users to interact with a client of the internet computer\n// using the available methods. It exposes an API that closely follows the\n// public view of the internet computer, and is not intended to be exposed\n// directly to the majority of users due to its low-level interface.\n//\n// There is a pipeline to apply transformations to the request before sending\n// it to the client. This is to decouple signature, nonce generation and\n// other computations so that this class can stay as simple as possible while\n// allowing extensions.\nexport class HttpAgent implements Agent {\n public rootKey = fromHex(IC_ROOT_KEY);\n private readonly _pipeline: HttpAgentRequestTransformFn[] = [];\n private _identity: Promise | null;\n private readonly _fetch: typeof fetch;\n private readonly _host: URL;\n private readonly _credentials: string | undefined;\n private _rootKeyFetched = false;\n\n constructor(options: HttpAgentOptions = {}) {\n if (options.source) {\n if (!(options.source instanceof HttpAgent)) {\n throw new Error(\"An Agent's source can only be another HttpAgent\");\n }\n this._pipeline = [...options.source._pipeline];\n this._identity = options.source._identity;\n this._fetch = options.source._fetch;\n this._host = options.source._host;\n this._credentials = options.source._credentials;\n } else {\n this._fetch = options.fetch || getDefaultFetch() || fetch.bind(global);\n }\n if (options.host !== undefined) {\n if (!options.host.match(/^[a-z]+:/) && typeof window !== 'undefined') {\n this._host = new URL(window.location.protocol + '//' + options.host);\n } else {\n this._host = new URL(options.host);\n }\n } else if (options.source !== undefined) {\n // Safe to ignore here.\n this._host = options.source._host;\n } else {\n const location = typeof window !== 'undefined' ? window.location : undefined;\n if (!location) {\n throw new Error('Must specify a host to connect to.');\n }\n this._host = new URL(location + '');\n }\n\n // Rewrite to avoid redirects\n if (this._host.hostname.endsWith(IC0_SUB_DOMAIN)) {\n this._host.hostname = IC0_DOMAIN;\n }\n\n if (options.credentials) {\n const { name, password } = options.credentials;\n this._credentials = `${name}${password ? ':' + password : ''}`;\n }\n this._identity = Promise.resolve(options.identity || new AnonymousIdentity());\n\n // Add a nonce transform to ensure calls are unique\n if (!options.disableNonce) {\n this.addTransform(makeNonceTransform(makeNonce));\n }\n }\n\n public addTransform(fn: HttpAgentRequestTransformFn, priority = fn.priority || 0): void {\n // Keep the pipeline sorted at all time, by priority.\n const i = this._pipeline.findIndex(x => (x.priority || 0) < priority);\n this._pipeline.splice(i >= 0 ? i : this._pipeline.length, 0, Object.assign(fn, { priority }));\n }\n\n public async getPrincipal(): Promise {\n if (!this._identity) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n return (await this._identity).getPrincipal();\n }\n\n public async call(\n canisterId: Principal | string,\n options: {\n methodName: string;\n arg: ArrayBuffer;\n effectiveCanisterId?: Principal | string;\n },\n identity?: Identity | Promise,\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const canister = Principal.from(canisterId);\n const ecid = options.effectiveCanisterId\n ? Principal.from(options.effectiveCanisterId)\n : canister;\n\n const sender: Principal = id.getPrincipal() || Principal.anonymous();\n\n const submit: CallRequest = {\n request_type: SubmitRequestType.Call,\n canister_id: canister,\n method_name: options.methodName,\n arg: options.arg,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = (await this._transform({\n request: {\n body: null,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n },\n },\n endpoint: Endpoint.Call,\n body: submit,\n })) as HttpAgentSubmitRequest;\n\n // Apply transform for identity.\n transformedRequest = await id.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n\n // Run both in parallel. The fetch is quite expensive, so we have plenty of time to\n // calculate the requestId locally.\n const [response, requestId] = await Promise.all([\n this._fetch('' + new URL(`/api/v2/canister/${ecid.toText()}/call`, this._host), {\n ...transformedRequest.request,\n body,\n }),\n requestIdOf(submit),\n ]);\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n\n return {\n requestId,\n response: {\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n },\n };\n }\n\n public async query(\n canisterId: Principal | string,\n fields: QueryFields,\n identity?: Identity | Promise,\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n const request: QueryRequest = {\n request_type: ReadRequestType.Query,\n canister_id: canister,\n method_name: fields.methodName,\n arg: fields.arg,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n };\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n },\n },\n endpoint: Endpoint.Query,\n body: request,\n });\n\n // Apply transform for identity.\n transformedRequest = await id?.transformRequest(transformedRequest);\n\n const body = cbor.encode(transformedRequest.body);\n const response = await this._fetch(\n '' + new URL(`/api/v2/canister/${canister.toText()}/query`, this._host),\n {\n ...transformedRequest.request,\n body,\n },\n );\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async createReadStateRequest(\n fields: ReadStateOptions,\n identity?: Identity | Promise,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise {\n const id = await (identity !== undefined ? await identity : await this._identity);\n if (!id) {\n throw new IdentityInvalidError(\n \"This identity has expired due this application's security policy. Please refresh your authentication.\",\n );\n }\n const sender = id?.getPrincipal() || Principal.anonymous();\n\n // TODO: remove this any. This can be a Signed or UnSigned request.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformedRequest: any = await this._transform({\n request: {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/cbor',\n ...(this._credentials ? { Authorization: 'Basic ' + btoa(this._credentials) } : {}),\n },\n },\n endpoint: Endpoint.ReadState,\n body: {\n request_type: ReadRequestType.ReadState,\n paths: fields.paths,\n sender,\n ingress_expiry: new Expiry(DEFAULT_INGRESS_EXPIRY_DELTA_IN_MSECS),\n },\n });\n\n // Apply transform for identity.\n return id?.transformRequest(transformedRequest);\n }\n\n public async readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n identity?: Identity | Promise,\n // eslint-disable-next-line\n request?: any,\n ): Promise {\n const canister = typeof canisterId === 'string' ? Principal.fromText(canisterId) : canisterId;\n\n const transformedRequest = request ?? (await this.createReadStateRequest(fields, identity));\n const body = cbor.encode(transformedRequest.body);\n\n const response = await this._fetch(\n '' + new URL(`/api/v2/canister/${canister}/read_state`, this._host),\n {\n ...transformedRequest.request,\n body,\n },\n );\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async status(): Promise {\n const headers: Record = this._credentials\n ? {\n Authorization: 'Basic ' + btoa(this._credentials),\n }\n : {};\n\n const response = await this._fetch('' + new URL(`/api/v2/status`, this._host), { headers });\n\n if (!response.ok) {\n throw new Error(\n `Server returned an error:\\n` +\n ` Code: ${response.status} (${response.statusText})\\n` +\n ` Body: ${await response.text()}\\n`,\n );\n }\n\n return cbor.decode(await response.arrayBuffer());\n }\n\n public async fetchRootKey(): Promise {\n if (!this._rootKeyFetched) {\n // Hex-encoded version of the replica root key\n this.rootKey = ((await this.status()) as any).root_key;\n this._rootKeyFetched = true;\n }\n return this.rootKey;\n }\n\n public invalidateIdentity(): void {\n this._identity = null;\n }\n\n public replaceIdentity(identity: Identity): void {\n this._identity = Promise.resolve(identity);\n }\n\n protected _transform(request: HttpAgentRequest): Promise {\n let p = Promise.resolve(request);\n\n for (const fn of this._pipeline) {\n p = p.then(r => fn(r).then(r2 => r2 || r));\n }\n\n return p;\n }\n}\n","import {\n CallOptions,\n QueryFields,\n QueryResponse,\n ReadStateOptions,\n ReadStateResponse,\n SubmitResponse,\n} from '..';\nimport { JsonObject } from '@dfinity/candid';\nimport { Agent } from './api';\nimport { Principal } from '@dfinity/principal';\n\nexport enum ProxyMessageKind {\n Error = 'err',\n GetPrincipal = 'gp',\n GetPrincipalResponse = 'gpr',\n Query = 'q',\n QueryResponse = 'qr',\n Call = 'c',\n CallResponse = 'cr',\n ReadState = 'rs',\n ReadStateResponse = 'rsr',\n Status = 's',\n StatusResponse = 'sr',\n}\n\nexport interface ProxyMessageBase {\n id: number;\n type: ProxyMessageKind;\n}\n\nexport interface ProxyMessageError extends ProxyMessageBase {\n type: ProxyMessageKind.Error;\n error: any;\n}\n\nexport interface ProxyMessageGetPrincipal extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipal;\n}\n\nexport interface ProxyMessageGetPrincipalResponse extends ProxyMessageBase {\n type: ProxyMessageKind.GetPrincipalResponse;\n response: string;\n}\n\nexport interface ProxyMessageQuery extends ProxyMessageBase {\n type: ProxyMessageKind.Query;\n args: [string, QueryFields];\n}\n\nexport interface ProxyMessageQueryResponse extends ProxyMessageBase {\n type: ProxyMessageKind.QueryResponse;\n response: QueryResponse;\n}\n\nexport interface ProxyMessageCall extends ProxyMessageBase {\n type: ProxyMessageKind.Call;\n args: [string, CallOptions];\n}\n\nexport interface ProxyMessageCallResponse extends ProxyMessageBase {\n type: ProxyMessageKind.CallResponse;\n response: SubmitResponse;\n}\n\nexport interface ProxyMessageReadState extends ProxyMessageBase {\n type: ProxyMessageKind.ReadState;\n args: [string, ReadStateOptions];\n}\n\nexport interface ProxyMessageReadStateResponse extends ProxyMessageBase {\n type: ProxyMessageKind.ReadStateResponse;\n response: ReadStateResponse;\n}\n\nexport interface ProxyMessageStatus extends ProxyMessageBase {\n type: ProxyMessageKind.Status;\n}\n\nexport interface ProxyMessageStatusResponse extends ProxyMessageBase {\n type: ProxyMessageKind.StatusResponse;\n response: JsonObject;\n}\n\nexport type ProxyMessage =\n | ProxyMessageError\n | ProxyMessageGetPrincipal\n | ProxyMessageGetPrincipalResponse\n | ProxyMessageQuery\n | ProxyMessageQueryResponse\n | ProxyMessageCall\n | ProxyMessageReadState\n | ProxyMessageReadStateResponse\n | ProxyMessageCallResponse\n | ProxyMessageStatus\n | ProxyMessageStatusResponse;\n\n// A Stub Agent that forwards calls to another Agent implementation.\nexport class ProxyStubAgent {\n constructor(private _frontend: (msg: ProxyMessage) => void, private _agent: Agent) {}\n\n public onmessage(msg: ProxyMessage): void {\n switch (msg.type) {\n case ProxyMessageKind.GetPrincipal:\n this._agent.getPrincipal().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.GetPrincipalResponse,\n response: response.toText(),\n });\n });\n break;\n case ProxyMessageKind.Query:\n this._agent.query(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.QueryResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Call:\n this._agent.call(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.CallResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.ReadState:\n this._agent.readState(...msg.args).then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.ReadStateResponse,\n response,\n });\n });\n break;\n case ProxyMessageKind.Status:\n this._agent.status().then(response => {\n this._frontend({\n id: msg.id,\n type: ProxyMessageKind.StatusResponse,\n response,\n });\n });\n break;\n\n default:\n throw new Error(`Invalid message received: ${JSON.stringify(msg)}`);\n }\n }\n}\n\n// An Agent that forwards calls to a backend. The calls are serialized\nexport class ProxyAgent implements Agent {\n private _nextId = 0;\n private _pendingCalls = new Map void, (reject: any) => void]>();\n public rootKey = null;\n\n constructor(private _backend: (msg: ProxyMessage) => void) {}\n\n public onmessage(msg: ProxyMessage): void {\n const id = msg.id;\n\n const maybePromise = this._pendingCalls.get(id);\n if (!maybePromise) {\n throw new Error('A proxy get the same message twice...');\n }\n\n this._pendingCalls.delete(id);\n const [resolve, reject] = maybePromise;\n\n switch (msg.type) {\n case ProxyMessageKind.Error:\n return reject(msg.error);\n case ProxyMessageKind.GetPrincipalResponse:\n case ProxyMessageKind.CallResponse:\n case ProxyMessageKind.QueryResponse:\n case ProxyMessageKind.ReadStateResponse:\n case ProxyMessageKind.StatusResponse:\n return resolve(msg.response);\n default:\n throw new Error(`Invalid message being sent to ProxyAgent: ${JSON.stringify(msg)}`);\n }\n }\n\n public async getPrincipal(): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.GetPrincipal,\n }).then(principal => {\n if (typeof principal !== 'string') {\n throw new Error('Invalid principal received.');\n }\n return Principal.fromText(principal);\n });\n }\n\n public readState(\n canisterId: Principal | string,\n fields: ReadStateOptions,\n ): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.ReadState,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n public call(canisterId: Principal | string, fields: CallOptions): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Call,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n public status(): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Status,\n }) as Promise;\n }\n\n public query(canisterId: Principal | string, fields: QueryFields): Promise {\n return this._sendAndWait({\n id: this._nextId++,\n type: ProxyMessageKind.Query,\n args: [canisterId.toString(), fields],\n }) as Promise;\n }\n\n private async _sendAndWait(msg: ProxyMessage): Promise {\n return new Promise((resolve, reject) => {\n this._pendingCalls.set(msg.id, [resolve, reject]);\n\n this._backend(msg);\n });\n }\n\n public async fetchRootKey(): Promise {\n // Hex-encoded version of the replica root key\n const rootKey = ((await this.status()) as any).root_key;\n this.rootKey = rootKey;\n return rootKey;\n }\n}\n","import { GlobalInternetComputer } from '../index';\nimport { Agent } from './api';\n\nexport * from './api';\nexport * from './http';\nexport * from './proxy';\n\ndeclare const window: GlobalInternetComputer;\ndeclare const global: GlobalInternetComputer;\ndeclare const self: GlobalInternetComputer;\n\nexport function getDefaultAgent(): Agent {\n const agent =\n typeof window === 'undefined'\n ? typeof global === 'undefined'\n ? typeof self === 'undefined'\n ? undefined\n : self.ic.agent\n : global.ic.agent\n : window.ic.agent;\n\n if (!agent) {\n throw new Error('No Agent could be found.');\n }\n\n return agent;\n}\n","/**\n * This file is generated from the candid for asset management.\n */\n/* tslint:disable */\n// @ts-ignore\nexport default ({ IDL }) => {\n const canister_id = IDL.Principal;\n const definite_canister_settings = IDL.Record({\n controllers: IDL.Vec(IDL.Principal),\n freezing_threshold: IDL.Nat,\n memory_allocation: IDL.Nat,\n compute_allocation: IDL.Nat,\n });\n const canister_settings = IDL.Record({\n controllers: IDL.Opt(IDL.Vec(IDL.Principal)),\n freezing_threshold: IDL.Opt(IDL.Nat),\n memory_allocation: IDL.Opt(IDL.Nat),\n compute_allocation: IDL.Opt(IDL.Nat),\n });\n const wasm_module = IDL.Vec(IDL.Nat8);\n return IDL.Service({\n canister_status: IDL.Func(\n [IDL.Record({ canister_id: canister_id })],\n [\n IDL.Record({\n status: IDL.Variant({\n stopped: IDL.Null,\n stopping: IDL.Null,\n running: IDL.Null,\n }),\n memory_size: IDL.Nat,\n cycles: IDL.Nat,\n settings: definite_canister_settings,\n module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n }),\n ],\n [],\n ),\n create_canister: IDL.Func(\n [IDL.Record({ settings: IDL.Opt(canister_settings) })],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n delete_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n deposit_cycles: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n install_code: IDL.Func(\n [\n IDL.Record({\n arg: IDL.Vec(IDL.Nat8),\n wasm_module: wasm_module,\n mode: IDL.Variant({\n reinstall: IDL.Null,\n upgrade: IDL.Null,\n install: IDL.Null,\n }),\n canister_id: canister_id,\n }),\n ],\n [],\n [],\n ),\n provisional_create_canister_with_cycles: IDL.Func(\n [\n IDL.Record({\n settings: IDL.Opt(canister_settings),\n amount: IDL.Opt(IDL.Nat),\n }),\n ],\n [IDL.Record({ canister_id: canister_id })],\n [],\n ),\n provisional_top_up_canister: IDL.Func(\n [IDL.Record({ canister_id: canister_id, amount: IDL.Nat })],\n [],\n [],\n ),\n raw_rand: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),\n start_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n stop_canister: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n uninstall_code: IDL.Func([IDL.Record({ canister_id: canister_id })], [], []),\n update_settings: IDL.Func(\n [\n IDL.Record({\n canister_id: IDL.Principal,\n settings: canister_settings,\n }),\n ],\n [],\n [],\n ),\n });\n};\n","import { Actor, ActorSubclass, CallConfig } from '../actor';\nimport { Principal } from '@dfinity/principal';\nimport managementCanisterIdl from './management_idl';\nimport _SERVICE from './management_service';\n\nexport type ManagementCanisterRecord = _SERVICE;\n\n/**\n * Create a management canister actor\n * @param config\n */\nexport function getManagementCanister(config: CallConfig): ActorSubclass {\n function transform(_methodName: string, args: unknown[], _callConfig: CallConfig) {\n const first = args[0] as any;\n let effectiveCanisterId = Principal.fromHex('');\n if (first && typeof first === 'object' && first.canister_id) {\n effectiveCanisterId = Principal.from(first.canister_id as unknown);\n }\n return { effectiveCanisterId };\n }\n\n return Actor.createActor(managementCanisterIdl, {\n ...config,\n canisterId: Principal.fromHex(''),\n ...{\n callTransform: transform,\n queryTransform: transform,\n },\n });\n}\n","import * as base64Arraybuffer from 'base64-arraybuffer';\n\n// This WASM is generated from the miracl BLS Rust code (see\n// https://github.com/dfinity/miracl_core_bls12381/)\nimport { wasmBytesBase64 } from './wasm';\n\n/* tslint:disable */\n/* eslint-disable */\nlet wasm: InitOutput;\n\nconst wasmBytes = base64Arraybuffer.decode(wasmBytesBase64);\n\n/**\n * @returns {number}\n */\nexport function bls_init() {\n let ret = wasm.bls_init();\n return ret;\n}\n\nlet cachegetUint8Memory0: any = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction passArray8ToWasm0(arg: any, malloc: any): [number, number] {\n const ptr = malloc(arg.length * 1);\n getUint8Memory0().set(arg, ptr / 1);\n return [ptr, arg.length];\n}\n\n/**\n * @param {Uint8Array} sig\n * @param {Uint8Array} m\n * @param {Uint8Array} w\n * @returns {number}\n */\nexport function bls_verify(sig: Uint8Array, m: Uint8Array, w: Uint8Array): number {\n const [ptr0, len0] = passArray8ToWasm0(sig, wasm.__wbindgen_malloc);\n const [ptr1, len1] = passArray8ToWasm0(m, wasm.__wbindgen_malloc);\n const [ptr2, len2] = passArray8ToWasm0(w, wasm.__wbindgen_malloc);\n\n const ret = wasm.bls_verify(ptr0, len0, ptr1, len1, ptr2, len2);\n return ret;\n}\n\nasync function load(module: any, imports: any) {\n if (typeof Response === 'function' && module instanceof Response) {\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nasync function init(): Promise {\n const imports = {};\n const { instance, module } = await load(wasmBytes, imports);\n\n wasm = instance.exports as any as InitOutput;\n (init as any).__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;\n\nexport interface InitOutput {\n readonly memory: WebAssembly.Memory;\n readonly bls_init: () => number;\n readonly bls_verify: (a: number, b: number, c: number, d: number, e: number, f: number) => number;\n readonly __wbindgen_malloc: (a: number) => number;\n}\n\n/**\n * If `module_or_path` is {RequestInfo} or {URL}, makes a request and\n * for everything else, calls `WebAssembly.instantiate` directly.\n *\n * @param {InitInput | Promise} module_or_path\n *\n * @returns {Promise}\n */\nexport default init;\n","export const wasmBytesBase64 = `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akE4ENABGiACQbgDakEBNgIAIAJBwANqQTgQ0AEaIAJB+ANqQQE2AgAgAkGABGpBOBDQARogAkEBNgK4BCACQcAEakE4ENABGiACQfgEakEBNgIAIAJBgAVqQTgQ0AEaIAJBuAVqQQE2AgAgAkHABWpBOBDQARogAkH4BWpBATYCACACQYAGakE4ENABGiACQQE2ArgGIAJBwAZqQTgQ0AEaIAJB+AZqQQE2AgAgAkGAB2pBOBDQARogAkG4B2pBATYCACACQcAHakE4ENABGiACQfgHakEBNgIAIAIgARAYAkAgASgCgAZBBEYNACAAKAKABkEERg0AIAJBgARqIgMgAEGAAmoQlgEgAyABQYACahAYDAYLIAJBwAxqIgdBOBDQARogAkEBNgL4DCACQYANakE4ENABGiACQbgNakEBNgIAIAJBgAhqIgRBOBDQARogAkEBNgK4CCACQcAIakE4ENABGiACQfgIakEBNgIAIAJBgApqIgMgAEGAA2oiBRBeIAQgAxCZASADIAFBgANqIgYQXiAEIAMQESAHELYBIAEoAoAGQQRHDQMMBAsgACABEAMMBgsgAkHADGoiAyABQYAFahBeIAJBgAxqIgQgA0HAABDRARogAkGABmogBBCnAQsgAkGABmoQZCACQYAIaiIDIAIQlgEgAxArIAJBgAJqIgQgAxCXASAGIAQQlgEgAkGABGoiByADEJYBIAMgABCWASADIAUQlwEgAxCwASACQYAKaiIEIAEQlgEgBCABQYAEahCXASAEELABIAMgBBAYIAcgAxCXASADIAUQlgECQCABKAKABkECRwRAIAJBwAxqIgMgAUGABWoQXiACQYAIaiADEKYBDAELIAJBwAxqIgMgAUGABWoQXiACQYAMaiIBIANBwAAQ0QEaIAJBgAhqIAEQpwELIAJBgAhqIgEQZCACQYAKaiIDIAEQlgEgAxArIAUgAkGABGoQlgEgBSADEJcBIAJBgAZqIgQgAxCXASABEGQgBiABEJcBIAQQsAEgBBBkIAAgAhCWASAAIAQQlwEMAwsgAkGACmoiAyAFEF4gAkHADGoiBCADEJkBIAMgAUGAAmoQXiAEIAMQEQsgACgCgAZBBEcEQCACQYAKaiIDIABBgAJqEF4gAkHADGoiBCADEJkBIAMgBhBeIAQgAxARCyACQYAEaiIDIAJB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AEHcu8AAKAIAQX4gA0EDdndxNgIACyAAIAEQoAEgAEH0vsAAKAIARw0BQey+wAAgATYCAAsPCyABQYACTwRAIAAgARAWDwsgAUEDdiICQQN0QeS7wABqIQECf0Hcu8AAKAIAIgNBASACdCICcQRAIAEoAggMAQtB3LvAACACIANyNgIAIAELIQIgASAANgIIIAIgADYCDCAAIAE2AgwgACACNgIIC+UDAQN/IwBB0CJrIgMkACADQcAWaiIEQcitwAAQSSADQcgcaiIFQYCuwAAQSSADQQhqIAQgBRBLIANBiAFqQTgQ0AEaIANBwAFqQTgQ0AEaIANB+AFqED0CQCACEIYBBEAgABBVDAELIANB+ARqIgQQPSAEIAEQfSAEEEcgA0H4B2oiARBnIAEgAhB4IAEQRiADQcgcaiICIAEQkAEgA0G4CWogAhCQASACIANBuAhqEJABIANB+AlqIAIQkAEgA0G4CmoiARA9IANBuA1qEFUgASAEEH0gA0HAE2oiARA9IAEgBBB9IAEQogEgA0HAAWogA0GIAWoQUEECayECA0AgAkEBakEBTQRAIANBuA1qIgEQngEgACABQYgGENEBGgUgA0G4DWoQGiADQcAWaiADQbgKaiADQbgJaiADQfgJahALAkACQAJAIANBwAFqIAIQUyADQYgBaiACEFNrQQFqDgMBAgACCyADQcgcaiIBIANBuApqIANB+ARqIANBuAlqIANB+AlqEAogA0HAFmogARADDAELIANByBxqIgEgA0G4CmogA0HAE2ogA0G4CWogA0H4CWoQCiADQcAWaiABEAMLIAJBAWshAiADQbgNaiADQcAWahABDAELCwsgA0HQImokAAvBAwEVfwNAIANBwAFGBEACQCAAQShqIQsgAEEUaigCACIMIQggAEEQaigCACINIQIgAEEMaigCACIOIQEgACgCCCIPIQMgAEEYaigCACIQIQogAEEcaigCACIRIQQgAEEgaigCACISIQcgAEEkaigCACITIQYDQCAHIQkgBCEHIAohBCAFQYACRg0BIAEgAnEhFCABIAJzIRUgBSALaigCACAFQcCiwABqKAIAIAkgBEF/c3EgBCAHcXIgBmogBEEadyAEQRV3cyAEQQd3c2pqaiIGIAhqIQogBUEEaiEFIAIhCCABIQIgAyIBQR53IAFBE3dzIAFBCndzIBQgASAVcXNqIAZqIQMgCSEGDAALAAsFIAAgA2oiAkHoAGogAkEoaigCACACQcwAaigCACACQeAAaigCACIBQQ93IAFBDXdzIAFBCnZzamogAkEsaigCACIBQRl3IAFBDndzIAFBA3ZzajYCACADQQRqIQMMAQsLIAAgBiATajYCJCAAIAkgEmo2AiAgACAHIBFqNgIcIAAgBCAQajYCGCAAIAggDGo2AhQgACACIA1qNgIQIAAgASAOajYCDCAAIAMgD2o2AggL5AEBAn8jAEGAA2siAyQAIAMQPSAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbyAAIAFBgANqIAJBAXNBAWtBH3YQbyAAIAFBgAZqIAJBAnNBAWtBH3YQbyAAIAFBgAlqIAJBA3NBAWtBH3YQbyAAIAFBgAxqIAJBBHNBAWtBH3YQbyAAIAFBgA9qIAJBBXNBAWtBH3YQbyAAIAFBgBJqIAJBBnNBAWtBH3YQbyAAIAFBgBVqIAJBB3NBAWtBH3YQbyADIAAQfSADEKIBIAAgAyAEQQFxEG8gA0GAA2okAAvlAwEIfyMAQZAGayICJAAgAEFAayEIAkAgAUH4AGooAgAgASgCOGqsIABB+ABqKAIAIgcgACgCOCIEaqx+Qv///w9XDQAgBEEBSgR/IAAQHiAAKAJ4BSAHC0EBTA0AIAgQHgsgAkHYpMAAEEkgAkE4aiIHQfAAENABGiACIQNBACECA0AgAkE4RgRAAkAgB0E4aiEEQQAhAgNAIAJBOEYNASACIARqIAIgA2opAwA3AwAgAkEIaiECDAALAAsFIAIgB2pCADcDACACQQhqIQIMAQsLIANBqAFqIgYgABBdIANB4AFqIgUgARBdIANBmAJqIgIgACABEAUgA0GIA2oiBCAIIAFBQGsiARAFIAYgCBBgIAYQQiAFIAEQYCAFEEIgA0H4A2oiCSAGIAUQBUEAIQEgA0HoBGoiBkHwABDQASEFA0AgAUHwAEcEQCABIAVqIAEgAmopAwA3AwAgAUEIaiEBDAELCyAGIAQQYkEAIQEDQCABQfAARwRAIAEgBGoiBSABIAdqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAiAEEGIgAhBIIAkgBhBjIAkQSCADQdgFaiIBIAIQayAAIAEQaiAAQQM2AjggASAJEGsgCCABEGogAEECNgJ4IANBkAZqJAALowIBCH8jAEGABmsiAiQAIAIgAEGAAWoiBxBeIAJBgAFqIgQgBxBeIAQQLSACQYACaiIFIAIQXiAFIABBgAJqIgMQESACQYADaiIBIAMQXiABEC0gAyAEEJkBIAMgBBCaASADEKkBIAMQuAEgAxC4ASADEKkBIAFBDBCrASABEHwgARCpASACQYAEaiIIIAEQXiAIIAMQESACQYAFaiIGIAQQXiAGIAEQmgEgBhCpASADIAUQESAFIAEQmQEgBSABEJoBIAEgBRCaASABEKkBIAQgARB7IAQQqQEgBiAEEBEgBiAIEJoBIAUgABCZASAFIAIQESAAIAQQmQEgABCpASAAIAUQESAAELgBIAAQqQEgByAGEJkBIAcQqQEgAkGABmokAAu8AgEGfyMAQYAIayIBJAAgASAAEIwBIAFBgAJqIgMgAEGABGoiBRCMASABQYAEaiIEIABBgAJqIgYQjAEgAUGABmoiAkE4ENABGiABQQE2ArgGIAFBwAZqQTgQ0AEaIAFB+AZqQQE2AgAgAUGAB2pBOBDQARogAUG4B2pBATYCACABQcAHakE4ENABGiABQfgHakEBNgIAIAAQISACIAAQlgEgAiAAEJcBIAAgAhCXASAAELABIAEQyQEgARCzASAAIAEQlwEgAxAhIAMQZCACIAMQlgEgAiADEJcBIAMgAhCXASADELABIAQQISACIAQQlgEgAiAEEJcBIAQgAhCXASAEELABIAYQsgEgBhCzASAFEMkBIAUQswEgBiADEJcBIAUgBBCXASAAQQU2AoAGIAAQnAEgAUGACGokAAv/AQEHfyMAQcACayIBJAAgASAAQUBrIgYQkAEgARBMIAFBQGsiAyAGEJABIAMgAEGAAWoiAhBKIAFBgAFqIgQgAhCQASAEEEwgAiABEK4BIAIgARB3IAIQQiACEIIBIAIQggEgAhBCIARBDBA0IAFBwAFqIgcgBBCQASAHIAIQSiABQYACaiIFIAEQkAEgBSAEEHcgBRBCIAIgAxBKIAMgBBCuASADIAQQdyAEIAMQdyABIAQQfiABEEIgBSABEEogBSAHEHcgAyAAEK4BIAMgBhBKIAAgARCuASAAEEIgACADEEogABCCASAAEEIgBiAFEK4BIAYQQiABQcACaiQAC84CAgd/An4CQAJAAkBBDSABQTpuIgJrIgRBDU0EQEEMIAJrIgNBDk8NASAAIAAgA0EDdGopAwBBOiABIAJBOmxrIgNrrSIKhyAAIARBA3RqKQMAIAOtIgmGhDcDaCAEQQ1rIQUgAEHgAGohBCACQQFqIQZBACACQQN0ayEHQQshAwNAAkAgA0ECaiAGTQRAIAFBrAZPDQEgACACQQN0aiAAKQMAIAmGQv//////////A4M3AwADQCACRQ0HIABCADcDACACQQFrIQIgAEEIaiEADAALAAsgAyAFakEOTw0EIAQgBCAHaiIIQQhrKQMAIAqHIAgpAwAgCYZC//////////8Dg4Q3AwAgA0EBayEDIARBCGshBAwBCwsgAkEOQYCywAAQOwALIARBDkHQscAAEDsACyADQQ5B4LHAABA7AAtBf0EOQfCxwAAQOwALC6cCAQR/IABCADcCECAAAn9BACABQYACSQ0AGkEfIAFB////B0sNABogAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+agsiBDYCHCAEQQJ0Qey9wABqIQMgACECAkACQAJAAkBB4LvAACgCACIAQQEgBHQiBXEEQCADKAIAIQMgBBCfASEAIAMQywEgAUcNASADIQAMAgtB4LvAACAAIAVyNgIAIAMgAjYCAAwDCyABIAB0IQQDQCADIARBHXZBBHFqQRBqIgUoAgAiAEUNAiAEQQF0IQQgACIDEMsBIAFHDQALCyAAKAIIIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCCACQQA2AhgPCyAFIAI2AgALIAIgAzYCGCACIAI2AgggAiACNgIMC7YCAQV/IAAoAhghBAJAAkAgACAAKAIMRgRAIABBFEEQIABBFGoiASgCACIDG2ooAgAiAg0BQQAhAQwCCyAAKAIIIgIgACgCDCIBNgIMIAEgAjYCCAwBCyABIABBEGogAxshAwNAIAMhBSACIgFBFGoiAygCACICRQRAIAFBEGohAyABKAIQIQILIAINAAsgBUEANgIACwJAIARFDQACQCAAIAAoAhxBAnRB7L3AAGoiAigCAEcEQCAEQRBBFCAEKAIQIABGG2ogATYCACABDQEMAgsgAiABNgIAIAENAEHgu8AAQeC7wAAoAgBBfiAAKAIcd3E2AgAPCyABIAQ2AhggACgCECICBEAgASACNgIQIAIgATYCGAsgAEEUaigCACIARQ0AIAFBFGogADYCACAAIAE2AhgLC+UBAQZ/IwBBgARrIgIkACACIAAQXiACQYABaiIFIABBgAFqIgYQXiACQYACaiIDQTgQ0AEaIAJBATYCuAIgAkHAAmpBOBDQARogAkH4AmpBATYCACACQYADaiIEIAYQXiACIAEQESAFIAFBgAFqIgcQESADIAcQmQEgAyABEJoBIAQgABCaASADEKkBIAQQqQEgBCADEBEgAyACEJkBIAMQNiAEIAMQmgEgBBCpASADIAUQmQEgAxA2IAYgBBCZASAGIAMQmgEgBRB8IAAgBRCZASAAIAIQmgEgABCwASACQYAEaiQAC28BDH9BjL/AACgCACICRQRAQZy/wABB/x82AgBBAA8LQYS/wAAhBgNAIAIiASgCCCECIAEoAgQhAyABKAIAIQQgAUEMaigCABogASEGIAVBAWohBSACDQALQZy/wAAgBUH/HyAFQf8fSxs2AgBBAAuAAgEGfyMAQYAIayIBJAAgACgCgAZBAUcEQCABIAAQjAEgAUGAAmoiAiAAQYACaiIEEIwBIAFBgARqIgUgAEGABGoiAxCMASABQYAGaiIGIAAQjAEgARAhIAIgAxAYIAIQswEgAhCwASAFECEgBiAEEBggBhCzASADIAAQlwEgAyAEEJcBIAMQsAEgAxAhIAAgARCWASABIAIQlwEgARCwASABIAUQlwEgASAGEJcBIAEQsAEgARArIAIQZCAFEGQgACACEJcBIAQgBRCWASAEIAYQlwEgAyABEJcBIABBBEEFIAAoAoAGQX5xQQJGGzYCgAYgABCdAQsgAUGACGokAAuZAgEBfyMAQYANayIDJAAgAyABEGkgAxCdASADQYgGaiIBIAIQXSABEEIgA0HABmoiAiABEF0gAkEDECkaIAIQQiADQfgGaiADEGkCQCACEFdFBEAgA0HABmoQKkECayECA0AgAkEBakEBTQRAIANB+AZqIgEQnAEMAwUgA0H4BmoQEwJAAkACQCADQcAGaiACEFMgA0GIBmogAhBTa0EBag4DAQIAAgsgA0H4BmogAxAHDAELIAMQngEgA0H4BmogAxAHIAMQngELIAJBAWshAgwBCwALAAsgA0H4BmoiARC3ASABQYABahC2ASABQYACahCxASABQYAEahCxASABQQE2AoAGCyAAIAFBiAYQ0QEaIANBgA1qJAALhgICBH8BfiMAQTBrIgIkACABQQRqIQQgASgCBEUEQCABKAIAIQMgAkEQaiIFQQA2AgAgAkIBNwMIIAIgAkEIajYCFCACQShqIANBEGopAgA3AwAgAkEgaiADQQhqKQIANwMAIAIgAykCADcDGCACQRRqIAJBGGoQDBogBEEIaiAFKAIANgIAIAQgAikDCDcCAAsgAkEgaiIDIARBCGooAgA2AgAgAUEMakEANgIAIAQpAgAhBiABQgE3AgQgAiAGNwMYQQxBBBC5ASIBRQRAQQxBBBDPAQALIAEgAikDGDcCACABQQhqIAMoAgA2AgAgAEGEt8AANgIEIAAgATYCACACQTBqJAAL5AEBAn8jAEHAAWsiAyQAIAMQZyAAIAEgAkEfdSIEIAJzIARBf3NqQQJtIgJBAWtBH3YQbiAAIAFBwAFqIAJBAXNBAWtBH3YQbiAAIAFBgANqIAJBAnNBAWtBH3YQbiAAIAFBwARqIAJBA3NBAWtBH3YQbiAAIAFBgAZqIAJBBHNBAWtBH3YQbiAAIAFBwAdqIAJBBXNBAWtBH3YQbiAAIAFBgAlqIAJBBnNBAWtBH3YQbiAAIAFBwApqIAJBB3NBAWtBH3YQbiADIAAQeCADEKQBIAAgAyAEQQFxEG4gA0HAAWokAAvDAwIGfwN+IwBB8ABrIgEkACABQcCywAAQSSABQThqIAEQXSAAEEICQAJAAkAgAQJ/IAAoAjgiAkEQTARAIAJBAWsQNQwBCyABKQMwIghCAXwiByAIVA0BIAApAzAiCEKAgICAgICAgIB/USAHQn9RcQ0CIAFBOGoiAiAIIAd/pxApIQcgASABKQNoIAdCOoZ8NwNoIAAgAhBhIAAQQkECCyIEECgDQCAERQ0DQQAhAyABIAEpAwgiCEI5hkKAgICAgICAgAKDIAEpAwBCAYeEIgc3AwAgACkDACAHfSEHIABBCGohBSAAIAFBOGoiAkEBA38gAiADaiAHQv//////////A4M3AwAgB0I6hyEHIANBKEYEfyABIAEpAzBCAYciCDcDMCACIAApAzAgCH0gB3wiBzcDMCAHQj+IpwUgASADaiIGQQhqIAhCAYcgBkEQaikDACIIQjmGQoCAgICAgICAAoOEIgk3AwAgAyAFaikDACAHfCAJfSEHIANBCGohAwwBCwtrEDAgBEEBayEEDAALAAtB4LPAAEEZQcSzwAAQWQALQYC0wABBH0HEs8AAEFkACyAAQQE2AjggAUHwAGokAAvuAQECfyMAQbABayIDJAAgA0EwENABIQMCQAJAA0AgAkEwRgRAIANBMGogAxBwIAFBMGohAUEAIQIDQCACQTBGDQMgAkEwRg0EIAIgA2ogASACai0AADoAACACQQFqIQIMAAsACyACQeAARwRAIAIgA2ogASACai0AADoAACACQQFqIQIMAQsLQeAAQeAAQYCmwAAQOwALIANB8ABqIgEgAxBwIABBOBDQASIAQQE2AjggAEFAa0E4ENABIABB+ABqQQE2AgAgACABEK4BIANBMGoQrgEgA0GwAWokAA8LIAJBMGpB4ABBkKbAABA7AAuPAgEDfyMAQSBrIgUkAEEBIQZB2LvAAEHYu8AAKAIAIgdBAWo2AgACQEGgv8AALQAABEBBpL/AACgCAEEBaiEGDAELQaC/wABBAToAAAtBpL/AACAGNgIAAkACQCAHQQBIIAZBAktyDQAgBSAEOgAYIAUgAzYCFCAFIAI2AhBBzLvAACgCACICQQBIDQBBzLvAACACQQFqIgI2AgBBzLvAAEHUu8AAKAIAIgMEf0HQu8AAKAIAIAUgACABKAIQEQAAIAUgBSkDADcDCCAFQQhqIAMoAhQRAABBzLvAACgCAAUgAgtBAWs2AgAgBkEBSw0AIAQNAQsACyMAQRBrIgIkACACIAE2AgwgAiAANgIIAAucAQEEfyMAQYADayICJAAgAiAAEF4gAkGAAWoiASAAQYABaiIEEF4gAkGAAmoiAyAAEF4gAyAEEBEgAiAEEJoBIAEQfCABIAAQmgEgAhCpASABEKkBIAAgAhCZASAAIAEQESABIAMQmQEgARB8IAEgAxCaASABEKkBIAEQNiAAIAEQmgEgAxC4ASAEIAMQmQEgABCwASACQYADaiQAC7kBAQJ/IwBBIGsiAyQAAkAgASABIAJqIgFLDQAgAEEEaigCACICQQF0IgQgASABIARJGyIBQQggAUEISxshAQJAIAIEQCADQRhqQQE2AgAgAyACNgIUIAMgACgCADYCEAwBCyADQQA2AhALIAMgASADQRBqECYgAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQzwEACyADKAIEIQIgAEEEaiABNgIAIAAgAjYCACADQSBqJAAPCxBlAAusAQECfyMAQYADayIDJAAgA0EIaiABEJABAkAgAgRAIANBCGogAhCuAQwBCyADQQhqEDoLIANByABqIgJB8LTAABBJIANBgAFqIAIQjgEgA0HAAWoiAiADQQhqIgQQkAEgAhBMIAIgARBKIAAgARCQASAAIAQQSiADQYACaiACEJABIAAQViEBIANBwAJqIgIgABCQASACEEMgAhBCIAAgAiABEHIgA0GAA2okAAueAQEFfyMAQYABayICJAAgAkE4ENABIgJBATYCOCACQUBrIgNBOBDQARogAkEBNgJ4IAIgABCuASACIAFBgAFqIgUQSiADIAEQrgEgAyAAQYABaiIGEEoCQCACIAMQWEUNACACIABBQGsQrgEgAiAFEEogAkFAayIAIAFBQGsQrgEgACAGEEogAiAAEFhFDQBBASEECyACQYABaiQAIAQLpwEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUaiACQRhqEAwaIANBCGogBCgCADYCACADIAIpAwg3AgALIABBhLfAADYCBCAAIAM2AgAgAkEwaiQAC5UBAQJ/AkACQAJAAkACfwJAAkACf0EBIgMgAUEASA0AGiACKAIAIgRFDQEgAigCBCICDQQgAQ0CQQEMAwshA0EAIQEMBgsgAQ0AQQEMAQsgAUEBELkBCyICRQ0BDAILIAQgARCsASICDQELIAAgATYCBEEBIQEMAQsgACACNgIEQQAhAwsgACADNgIAIABBCGogATYCAAvvMwISfwV+IwBBMGsiDiQAIA5BEGogACABEFsgDiAOKAIUIgA2AhwgDiAOKAIQIgg2AhggDkEIaiACIAMQWyAOIA4oAgwiATYCJCAOIA4oAggiAzYCICAOIAQgBRBbIA4gDigCBCIFNgIsIA4gDigCACINNgIoIAAhBCMAQZAVayICJAAjAEGwBmsiCiQAIApBEGpBOBDQARogCkHQAGpBOBDQASEVIApBiAFqQQE2AgAgCkEBNgJIIApBkAFqIgBB2KTAABBJIAAQKiEPIApByAFqIhNBgAIQ0AEaIApB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ABBJAkACQAJAAkADQAJAIAxBMEYEQCAAIAAtAABBH3E6AAAgAEHoAGogABC+ASAEDQFBAEEAQZiBwAAQOwALIAQgDEYNAiAAIAxqIAggDGotAAA6AAAgDEEBaiEMDAELC0EAIQwgCCwAACIJQQBIDQIgCEEwaiEDIARBMCAEQTBLG0EwayEIA0AgDEEwRgRAIABBoAFqIgQgABC+ASMAQYABayIDJAAgARBnIAEgAEHoAGoQwAEgAUFAayIIIAQQwAEgAUGAAWoQygEgARBCIAMgARBPIANBQGsiBCAIEJABIAQQTCAEIAMQWEUEQCABEJIBCyADQYABaiQADAULIAggDEYNAiAAIAxqIAMgDGotAAA6AAAgDEEBaiEMDAALAAsgBCAEQYiBwAAQOwALIAxBMGogBEGogcAAEDsACyMAQcABayIDJAAgAEGgAWoiBBBnIANBOBDQASIDQQE2AjggBCAAQegAahDAASAEEEIgBEGAAWoQygEgA0FAayIIIAQQTwJAAkACQCAIIAMQWkEBRgRAIANBgAFqIgggA0FAayADECMgCBBWDQEMAgsgBBCSAQwCCyADQYABaiIIEEMgCBBCCyAEQUBrIANBgAFqEK4BCyADQcABaiQAIAlBIHEiA0EAIABB4AFqEE0iBEEBRxtBASADIARBAUdyGwRAIABBoAFqEKQBCyABIABBoAFqQcABENEBGgsgAEHgAmokAAJ/QQAhAyMAQcAFayIAJAACQCABEIYBDQAgAEEIaiIIQZCtwAAQSSAAQYAEaiIEQbiuwAAQSSAAQUBrIgkgBBCOASAAQYABaiIEEGcgBCABEHggBCAJEEogAEHAAmoiBCABIAgQvQEgASAEECQNACAAQYAEaiIEIABBwAJqIgEgAEEIahC9ASABIARBwAEQ0QEaIAEQpAEgAEGAAWogARAkRQ0AQQEhAwsgAEHABWokAEF/IANFDQAaIAJBwAFqEKQBIAJBgANqIQhBACEAIwBB4ARrIgEkACABQeAAENABIQECQCAFBEADQCAAQeAARgRAIAEgAS0AAEEfcToAACABQeAAaiABEB9BACEAAkAgDSwAACILQQBOBEAgDUHgAGohAyAFQeAAIAVB4ABLG0HgAGshBANAIABB4ABGBEAgAUHgAWoiACABEB8gCCABQeAAaiAAED8MAwsgACAERwRA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AWoQmQEgACAEEBEgAEGAAWoiASAFQYABahCZASABIAgQESAAIAEQeg0BC0EADAELQQELIQEgAEGAAmokACANQcAHaiQAQX8gAUUNABojAEHgA2siACQAIABBgAFqIgFBwKjAABBJIABBuAFqIgNB+KjAABBJIAAgASADEEsgAEHwAmoiAUGwqcAAEEkgAEGoA2oiA0HoqcAAEEkgAEHwAWoiBCABIAMQSyACQYAGaiIBIAAgBBA/IABB4ANqJAAgAkGACWohByACQYADaiEIIwBBkDRrIgAkACAAQYAoaiIDQcitwAAQSSAAQYguaiIEQYCuwAAQSSAAIAMgBBBLIABBgAFqQTgQ0AEaIABBuAFqQTgQ0AEaIABB8AFqED0CQCACQcABaiIEEIYBRQRAIAIQhgEEQCAHIAEgBBAODAILIABB8ARqIgMQPSADIAEQfSADEEcgAEHwB2oiBRBnIAUgBBB4IAUQRiAAQbAJaiIEED0gBCAIEH0gBBBHIABBsAxqIggQZyAIIAIQeCAIEEYgAEGILmoiASAFEJABIABB8A1qIAEQkAEgASAAQbAIahCQASAAQbAOaiABEJABIAEgCBCQASAAQfAOaiABEJABIAEgAEHwDGoQkAEgAEGwD2ogARCQASAAQfAPaiIBED0gAEHwEmoiBRA9IABB8BVqEFUgASADEH0gBSAEEH0gAEH4G2oiARA9IAEgAxB9IAEQogEgAEH4HmoiARA9IAEgBBB9IAEQogEgAEG4AWogAEGAAWoQUEECayEBA0AgAUEBakEBTQRAIABB8BVqIgEQngEgByABQYgGENEBGgwDBSAAQfAVaiIEEBogAEH4IWoiAyAAQfAPaiAAQfANaiAAQbAOahALIABBgChqIgUgAEHwEmogAEHwDmogAEGwD2oQCyADIAUQAyAEIAMQAQJAAkACQCAAQbgBaiABEFMgAEGAAWogARBTa0EBag4DAQIAAgsgAEGILmoiAyAAQfAPaiAAQfAEaiAAQfANaiAAQbAOahAKIABB+CFqIgQgA0GIBhDRARogAyAAQfASaiAAQbAJaiAAQfAOaiAAQbAPahAKIAQgAxADIABB8BVqIAQQAQwBCyAAQYguaiIDIABB8A9qIABB+BtqIABB8A1qIABBsA5qEAogAEH4IWoiBCADQYgGENEBGiADIABB8BJqIABB+B5qIABB8A5qIABBsA9qEAogBCADEAMgAEHwFWogBBABCyABQQFrIQEMAQsACwALIAcgCCACEA4LIABBkDRqJAAjAEHgH2siCCQAIAhB0BNqIgFByK3AABBJIAhB2BlqIg1BgK7AABBJIAggASANEEsgCEGAAWoiC0GQrcAAEEkgAkGID2oiACAHEGkgCEG4AWoiBSAAEGkjAEGACGsiAyQAIAMgBRCMASADQYACaiIJIAVBgAJqIg8QjAEgA0GABGoiCiAFEIwBIANBgAZqIgRBOBDQARogA0EBNgK4BiADQcAGakE4ENABGiADQfgGakEBNgIAIANBgAdqQTgQ0AEaIANBuAdqQQE2AgAgA0HAB2pBOBDQARogA0H4B2pBATYCACAFEJ0BIAMQISAJIAVBgARqIgwQGCAJEGQgAyAJEHkgAxCwASAJIAwQlgEgCRAhIAkQZCAKIA8QGCAJIAoQeSAJELABIAogDxCWASAKECEgBCAFEJYBIAQgDBAYIAogBBB5IAoQsAEgBCAPEJYBIAQgChAYIAQQZCAFIAMQGCAEIAUQlwEgDCAJEBggDBBkIAQgDBCXASAEELABIwBBgAJrIgYkACAGIAQQXiAGQYABaiIQIARBgAFqIhIQXiAGEC0gEBAtIBAQfCAQEKkBIAYgEBB7IAYQPiAEIAYQESAGEDYgBhCpASASIAYQESAGQYACaiQAIAUgAxCWASAFIAQQGCAPIAkQlgEgDyAEEBggDCAKEJYBIAwgBBAYIAVBBTYCgAYgA0GACGokACAAEJ4BIAAgBRAHIAUgABBtIAAgCBAyIAAgCBAyIAAgBRAHIAhBwAdqIgQgABBpIAQQEyAEIAAQByANIAAgCxAbIAhByA1qIgMgDRBpIAMQngEgASAAEGkgARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gARCeASAAIAMQbSAAIAEQByANIAAgCxAbIAMgDRBtIAMQngEgASAAEG0gASAIEDIgACADEG0gACABEAcgDSAAIAsQGyADIA0QbSANIAMgCxAbIAMgDRBtIAEgABBtIAEgCBAyIAEgCBAyIAMgARAHIAEgABBtIAEQngEgACADEG0gACABEAcgACAEEAcgABCcASAIQeAfaiQAIAcgAEGIBhDRARpBACEAIwBBgAJrIgEkACABEGwCQCAHIAEQegR/IAdBgAFqIAFBgAFqEHoFQQALRQ0AIAdBgAJqEIcBRQ0AIAdBgARqEIcBIQALIAFBgAJqJABBACAADQAaQX8LIAJBkBVqJAAgDkEoahC0ASAOQSBqELQBIA5BGGoQtAEgDkEwaiQAC58BAgJ/BX4gAEEwaiICKQMAIAFBP3GtIgSGIQUgACkDKCIGQTogAWtBP3GtIgiHIQdBBiEBA38gAiAFIAeENwMAIAFBAU0EfyAAIAApAwAgBIZC//////////8DgzcDACAAKQMwQiSHpwUgAUEBayEBIAJBEGsiA0EIaiECIAYgBIZC//////////8DgyEHIAMpAwAiBiAIhyEFDAELCxoLiAECA34DfyMAQRBrIgUkAAN+IAZBOEYEfiAFQRBqJAAgAwUgBSAAIAZqIgcpAwAiAiACQj+HIAGsIgIgAkI/hxAvIAcgBSkDACIEIAN8IgJC//////////8DgzcDACACIARUrSAFQQhqKQMAIANCP4d8fEIGhiACQjqIhCEDIAZBCGohBgwBCwsLigECA38BfiMAQUBqIgIkACACQQhqIgEgABBdIAEQQiACQThqIQFBBiEDQdwCIQACQAJAA0AgA0EATgRAIAEpAwAiBEIAUg0CIAFBCGshASAAQTprIQAgA0EBayEDDAELC0EAIQAMAQsDQCAEUA0BIABBAWohACAEQgJ/IQQMAAsACyACQUBrJAAgAAuHAQEDfyMAQYACayIBJAAgABCwASABIAAQXiABQYABaiICQTgQ0AEaIAFBATYCuAEgAUHAAWpBOBDQARogAUH4AWpBATYCACABIABBgAFqIgMQmgEgARA2IAIgARCZASACIAMQmgEgAyABEJkBIAMgABCaASAAIAIQmQEgABCwASABQYACaiQAC30CBH4BfyABQT9xrSECQTogAWtBP3GtIQRBACEBIAApAwAiBSEDA38gAUEwRgR/IAAgACkDMCAChzcDMCAFQn8gAoZCf4WDpwUgACABaiIGIAMgAocgBkEIaikDACIDIASGQv//////////A4OENwMAIAFBCGohAQwBCwsaC2kBBH8jAEHAAWsiASQAIAEgABCQASABQUBrIgIgABCQASABQYABaiIDIABBQGsiBBCQASABIAQQdyACIAAQdyACEEIgBCACEEogAxBDIAAgAxB3IAEQQiAAEEIgACABEEogAUHAAWokAAuCAQIBfwF+IABB8AAQ0AEhAANAIAJBOEYEQAJAIAAgASkDMCIDQjqHNwM4IAAgA0L//////////wODNwMwIABBQGshAEEAIQIDQCACQTBGDQEgACACakIANwMAIAJBCGohAgwACwALBSAAIAJqIAEgAmopAwA3AwAgAkEIaiECDAELCwtuAQZ+IAAgA0L/////D4MiBSABQv////8PgyIGfiIHIAUgAUIgiCIIfiIJIAYgA0IgiCIGfnwiBUIghnwiCjcDACAAIAcgClatIAYgCH4gBSAJVK1CIIYgBUIgiIR8fCABIAR+IAIgA358fDcDCAtqAgF/BX4gASkDCCAAKQMAhSIGQgGGQgGHIQdBACACa6whCAN+IANBOEYEfiAFBSAAIANqIgIgAikDACIEIAaFIAEgA2opAwAgBIUgCIOFIgQgB4U3AwAgBCAFhSEFIANBCGohAwwBCwsaC18CAX8EfkIBIQNBMCECA38gAkF4RgR/IARCAYYgA3ynQQFrBSABIAJqKQMAIgUgACACaikDACIGfUI6hyADgyAEhCEEIAJBCGshAiAFIAaFQgF9QjqHIAODIQMMAQsLC2kBBH8jAEGAAmsiAiQAIAIgARBeIAJBgAFqIgMgARBeIAIQLSADIAIQESAAIAMQmAEgAEGAAmoiBCADEJgBIABBgARqIgUgAxCYASAEIAEQpgEgBSACEKYBIABBBTYCgAYgAkGAAmokAAtiAQJ/IwBBQGoiAiQAIAAQQiACIAAQkAECQCABBEAgACABEK4BDAELIAAQOgtBACEBA0AgA0UEQCAAEExBASABQQFqIAFBAUYiAxshAQwBCwsgACACEEogABAeIAJBQGskAAtnAQJ/IwBBQGoiAyQAAkAgASABQR91IgJqIAJzIgIgACgCOGxBgICAEE4EQCADIAIQOSAAIAMQSgwBCyAAIAIQKRogACAAKAI4IAJsNgI4CyABQQBIBEAgABBDIAAQQgsgA0FAayQAC2cAIABBAXYgAHIiAEECdiAAciIAQQR2IAByIgBBCHYgAHIiAEEQdiAAciIAIABBAXZB1arVqgVxayIAQQJ2QbPmzJkDcSAAQbPmzJkDcWoiAEEEdiAAakGPnrz4AHFBgYKECGxBGHYLYQEDfyMAQYABayIBJAAgASAAEJABIAFBQGsiAkE4ENABGiABQQE2AnggASAAQUBrIgMQdyABEEMgAiABEK4BIAIgAxB3IAMgARCuASADIAAQdyAAIAIQrgEgAUGAAWokAAtVAgJ/AX4jAEHwAGsiASQAIAFBwLLAABBJIAApAwAhAyABQThqIgIgABBdIABBARAsIAIgARBgIAIQQiACQQEQLCAAIAIgA0ICgacQMCABQfAAaiQAC5gBAQZ/IwBBwAFrIgMkACAAIAEQXiAAEC0gA0GIAWoiBkHop8AAEEkjAEFAaiIEJAAgA0EIaiICQTgQ0AEiBUEBNgI4IAVBQGtBOBDQASAFQfgAakEBNgIAIAQgBhCOASAFIAQQrgEQwQEgBEFAayQAIAIQqQEgAhB8IAIQqQEgACABEBEgACACEJoBIAAQtQEgA0HAAWokAAtZAQJ/IwBBQGoiAyQAIABBOBDQASIAQQE2AjgCQCABQQBOBEAgACABEJMBDAELIANBCGoiAkHAssAAEEkgAiABEJMBIAIQQiAAIAIQagsgABBUIANBQGskAAu9CAEKfyMAQYABayIHJAAgB0EIaiIDQcCywAAQSSADQQEQlAECQAJAA0AgAUEwRgRAIANBMGogAykDMEIBhzcDACADQThqIQEDQCACRQ0EIAFCADcDACACQQFrIQIgAUEIaiEBDAALAAsgAUE4Rg0BIAFBOEcEQCABIANqIAEgA2oiBEEIaikDAEI5hkL//////////wODIAQpAwBCAYeENwMAIAVBAWohBSABQQhqIQEMAQsLQQdBB0GEm8AAEDsACyAFQQdB9JrAABA7AAsgA0EBEJQBIANBARAsIAdBQGshBUEAIQIjAEGgCmsiASQAIAFBOBDQASIBQUBrQTgQ0AEhBiABQYABakE4ENABGiABQcABakE4ENABGiABQYACakE4ENABGiABQcACakE4ENABGiABQYADakE4ENABGiABQcADakE4ENABGiABQYAEakE4ENABGiABQcAEakE4ENABGiABQYAFakE4ENABGiABQcAFakE4ENABGiABQYAGakE4ENABGiABQcAGakE4ENABGiABQYAHakE4ENABGiABQcAHakE4ENABGiABQfgHakEBNgIAIAFBuAdqQQE2AgAgAUH4BmpBATYCACABQbgGakEBNgIAIAFB+AVqQQE2AgAgAUG4BWpBATYCACABQfgEakEBNgIAIAFBuARqQQE2AgAgAUH4A2pBATYCACABQbgDakEBNgIAIAFB+AJqQQE2AgAgAUG4AmpBATYCACABQfgBakEBNgIAIAFBuAFqQQE2AgAgAUH4AGpBATYCACABQQE2AjggAUGBCGpB5wAQ0AEaIAFB6AhqIgQgABCQASAEEEIgAUGoCWoiBCADEF0gBBBCIAQQKkEDaiIIQQJ2IgNBAWohCQJAA0AgAiAJRgRAIAEQygEgBiABQegIahCuASABQeAJakE4ENABGiABQQE2ApgKQYB5IQIMAgsgAUGoCWoiBCAEQQQQjwEiChCUASAEEEIgAkHnAEcEQCABQYEIaiACaiAKOgAAIAFBqAlqQQQQLCACQQFqIQIMAQsLQecAQecAQaC0wAAQOwALA0AgAgRAIAFB4AlqIgQgASACaiIGQcAHahCuASAGQYAIaiIGIAQQrgEgBiABQegIahBKIAJBQGshAgwBCwsCQAJAAkACQCAIQZwDSQRAIAFBgQhqIANqLAAAIgJBEE8NASAFIAEgAkEGdGoQkAEgA0EBayICQeYASyEEA0AgAkF/Rg0DIAUQTCAFEEwgBRBMIAUQTCAEDQQgAUGBCGogAmotAAAiA0EQSQRAIAUgASADQQZ0ahBKIAJBAWshAgwBCwsgA0EYdEEYdUEQQeC0wAAQOwALIANB5wBBsLTAABA7AAsgAkEQQcC0wAAQOwALIAUQHiABQaAKaiQADAELIAJB5wBB0LTAABA7AAsgACAFEK4BIAdBgAFqJAALbAEBfyMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBHGpBAjYCACADQSxqQQE2AgAgA0ICNwIMIANB2LjAADYCCCADQQE2AiQgAyADQSBqNgIYIAMgAzYCKCADIANBBGo2AiAgA0EIaiACEGYAC2UBAn8gACAAKAIAIgJBCGoiAzYCACAAIAJBA3ZBPHFqQShqIgIgAUH/AXEgAigCAEEIdHI2AgACQAJAIANFBEAgAEEANgIAIAAgACgCBEEBajYCBAwBCyADQf8DcQ0BCyAAEA8LC1wAIABBOBDQASIAQQE2AjggAEFAa0E4ENABGiAAQfgAakEBNgIAIABBgAFqEFEgAEGAAmpBOBDQARogAEG4AmpBATYCACAAQcACakE4ENABGiAAQfgCakEBNgIAC1sBA38jAEGAAWsiASQAIAAQqQEgASAAEJABIAFBQGsiAiAAQUBrIgMQkAEgARBMIAIQTCABIAIQdyABQQAQMyAAIAEQSiABEEMgARBCIAMgARBKIAFBgAFqJAALYQEBfyMAQYACayIDJAAgABA9IAAgARCZASAAQYABaiIBIAIQmQEgAEGAAmoQtwEgABCpASADIAAQOCADQYABaiICIAEQXiACEC0gAiADEHpFBEAgABCbAQsgA0GAAmokAAtUAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqIAJBCGoQDCACQSBqJAALZwAjAEEwayIBJABBpLvAAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUGQtsAANgIIIAFBATYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQbi2wAAQZgALIAFBMGokAAtiAgF+An8gACkDACEBA34gACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkEoRgR+IAAgACkDMCABfCIBNwMwIAFCJIcFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLGgt8AQV/IwBBQGoiAyQAIANBCGoiAkHAssAAEEkgAiAAKAI4QQFrEDUiBBAoA0AgAUE4RwRAIAAgAWoiBSABIAJqKQMAIAUpAwB9NwMAIAFBCGohAQwBCwsgAEEBIARBAWp0IgI2AjggAkH///8PSgRAIAAQHgsgA0FAayQAC3sBAn8gAEEoaiECA0AgAUGAAkYEQCAAQufMp9DW0Ouzu383AgggAEIANwIAIABBIGpCq7OP/JGjs/DbADcCACAAQRhqQv+kuYjFkdqCm383AgAgAEEQakLy5rvjo6f9p6V/NwIABSABIAJqQQA2AgAgAUEEaiEBDAELCwtUACAAQTgQ0AEiAEEBNgI4IABBQGtBOBDQARogAEH4AGpBATYCACAAQYABakE4ENABGiAAQbgBakEBNgIAIABBwAFqQTgQ0AEaIABB+AFqQQE2AgALWAECfyMAQUBqIgEkAAJAIAAQhgENACABQQEQOSAAQYABaiICIAEQWA0AIAJBABAzIAAgAhBKIAAQHiAAQUBrIgAgAhBKIAAQHiACIAEQrgELIAFBQGskAAtZAQJ/IwBBgAFrIgEkAAJAIAAQigENACABEFEgAEGAAmoiAiABEHoNACACED4gACACEBEgABC1ASAAQYABaiIAIAIQESAAELUBIAIgARCZAQsgAUGAAWokAAtbAgF+An8gACkDACEBA0AgACACaiIDIAFC//////////8DgzcDACABQjqHIQEgAkHgAEYEQCAAIAApA2ggAXw3A2gFIAJBCGohAiADQQhqKQMAIAF8IQEMAQsLC08BAX8gAEE4ENABGgJAA0AgAkEHRwRAIAJBB0YNAiAAIAEpAwA3AwAgAEEIaiEAIAFBCGohASACQQFqIQIMAQsLDwtBB0EHQeSawAAQOwALVAECfyMAQbABayICJAAgATQCOCAANAI4fkL///8PVQRAIAAQHgsgAkEIaiIDIAAgARAFIAJB+ABqIgEgAxBrIAAgARBqIABBAjYCOCACQbABaiQAC1EBAn8jAEFAaiIDJAAgAEE4ENABIgBBATYCOCAAQUBrQTgQ0AEgAEH4AGpBATYCACADIAEQjgEgACADEK4BIAMgAhCOASADEK4BIANBQGskAAvwDAIRfwh+IwBBsAFrIg8kACAANAI4IhIgEn5C////D1YEQCAAEB4LIwBB0AFrIgEkACAPQQhqIgZBCGpB0AAQ0AEaIAFBwAFqIAApAwAiFyAXQj+HIhYgFyAWEC8gBiABKQPAASISQv//////////A4M3AwAgAUHIAWopAwAiFUIGhiASQjqIhCETIBVCOoghGCAAQQhqIgwhDSAAIQlBASEKQQEhBwJAA0AgCkEERgRAIABBGGohCiAAQRBqIQkgAEEoaiEMIAApAzAhF0EHIQUgAUHIAGohCwNAIAVBC0kEQCABQUBrIAVBA3QiCCAAakEwaykDACISIBJCP4cgFyAXQj+HIhYQLyAFQQFqIg1BAXYhByALKQMAIRUgASkDQCESIAkhAiAMIQQgBUEFayIOIQMDQCADIAdJBEAgASACKQMAIhQgFEI/hyAEKQMAIhQgFEI/hxAvIAEpAwAiFCASfCISIBRUrSABQQhqKQMAIBV8fCEVIAJBCGohAiAEQQhrIQQgA0EBaiEDDAELCyAGIAhqIBJCAYYiFCATfCITQv//////////A4M3AwAgAUEwaiAAIA5BA3RqKQMAIhkgGUI/hyAXIBYQLyATIBRU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aikDADcDACACQQhqIQIMAQsLC4QJAg1/Cn4jAEFAaiILJAAgC0EIaiIJQcCywAAQSSMAQZACayICJAAgAEEwENABIQogAkHoAGpB8AAQ0AEaIAJB4AFqQTAQ0AEaIAoQcSACIAEiDCkDACIQQv3/8//P///5AX5C//////////8DgyISNwPYASACQdgAaiASQgAgCSkDACIXIBdCP4ciGBAvIBAgAikDWCIPfCITIA9UrSACQeAAaikDACAQQj+HfHwiEEI6hyABKQMIIg9CP4d8IA8gEEIGhiATQjqIhCITfCIQIBNUrXwhD0EBIQBCACETAkACQANAAkAgAEEHRgRAQQYhB0EAIQhBByEADAELIABBAXYiAUEBaiEGIAggAWshAyABQQN0IgFBCGohBCAHIAFrIQUgAkHIAGogCSAAQQN0Ig1qKQMAIhUgFUI/hyIWIBJCABAvIAJB0ABqKQMAIBAgECATfCIRVq0gDyAUfHx8IBEgAikDSHwiDyARVK18IRAgAEEBaiEBA0AgACAGTQRAIAJB2AFqIA1qIA9C/f/z/8////kBfkL//////////wODIhE3AwAgAkE4aiARQgAgFyAYEC8gAkEoaiARQgAgFSAWEC8gAkHoAGogAEEEdGoiACACQTBqKQMAIhE3AwggACACKQMoIhU3AwAgDyACKQM4IhZ8Ig8gFlStIAJBQGspAwAgEHx8IhBCOocgDCABQQN0aikDACIWQj+HfCAWIBBCBoYgD0I6iIQiD3wiECAPVK18IQ8gEyAVfCITIBVUrSARIBR8fCEUIAdBCGohByAIQQFqIQggASEADAMLIANBB08NAyACQRhqIAQgCWopAwAgBSAJaikDAH0iESARQj+HIAJB2AFqIg4gBWopAwAgBCAOaikDAH0iESARQj+HEC8gAikDGCIRIA98Ig8gEVStIAJBIGopAwAgEHx8IRAgBkEBaiEGIARBCGohBCAFQQhrIQUgA0EBayEDDAALAAsLA0ACQAJAIABBDUcEQCAHIABBAXYiBmshAyAIIAZBA3QiAWshBCABQQhqIQUgDyAUfCAQIBN8Ig8gEFStfCEQIABBAWohAQNAIAZBBUsNAyADQQdPDQIgAkEIaiAFIAlqKQMAIAQgCWpBMGopAwB9IhIgEkI/hyACIARqQYgCaikDACACQdgBaiAFaikDAH0iEiASQj+HEC8gAikDCCISIA98Ig8gElStIAJBEGopAwAgEHx8IRAgBkEBaiEGIARBCGshBCADQQFrIQMgBUEIaiEFDAALAAsgCiAQQv//////////A4M3AzAgAkGQAmokAAwECyADQQdBpJzAABA7AAsgAEEDdCAKakE4ayAPQv//////////A4M3AwAgEEI6hyAMIAFBA3RqKQMAIhJCP4d8IBIgEEIGhiAPQjqIhCIPfCIQIA9UrXwhDyAUIABBBHQgAmpBCGoiAEEIaikDAH0gEyAAKQMAIhJUrX0hFCAIQQhqIQggB0EBaiEHIBMgEn0hEyABIQAMAAsACyADQQdBlJzAABA7AAsgC0FAayQACy4BAX8jAEGAAWsiASQAIAAQRSABEFEgACABEJkBIABBgAFqELYBIAFBgAFqJAALMwAgACABEJYBIABBgAJqIAFBgAJqEJYBIABBgARqIAFBgARqEJYBIAAgASgCgAY2AoAGCygAIAAgASACEHIgAEFAayABQUBrIAIQciAAQYABaiABQYABaiACEHILLQAgACABIAIQjQEgAEGAAWogAUGAAWogAhCNASAAQYACaiABQYACaiACEI0BCycBAn8jAEFAaiICJAAgAkEIaiIDIAEQvgEgACADEI4BIAJBQGskAAsiAQF/A0AgAUE4RwRAIAAgAWpCADcDACABQQhqIQEMAQsLCyUAIAAgASACEDAgAEEAIAJrIAAoAjgiACABKAI4c3EgAHM2AjgLJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECyMAA0AgAgRAIAAgAS0AABA8IAJBAWshAiABQQFqIQEMAQsLCywAIAAQiwEgACABEJYBIABBgAJqIAIQlgEgAEGABGogAxCWASAAQQU2AoAGCyMBAX8jAEFAaiIBJAAgASAAEJABIAEQHiABEFcgAUFAayQACykAIAAgARBgIAAgACgCOCABKAI4aiIBNgI4IAFB////D0oEQCAAEB4LCyUAIAAgARCuASAAQUBrIAFBQGsQrgEgAEGAAWogAUGAAWoQrgELKAEBfyMAQYACayICJAAgAiABEIwBIAIQKyAAIAIQlwEgAkGAAmokAAscAQF/IAAgARBYBH8gAEFAayABQUBrEFgFQQALCycBAX8jAEGAAWsiAiQAIAIg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DCELDQALCyAMpyICQeMASwRAIABBAmsiACAGQQlqaiAMpyICIAJB//8DcUHkAG4iAkHkAGxrQf//A3FBAXRB6LjAAGovAAA7AAALAkAgAkEKTwRAIABBAmsiACAGQQlqaiACQQF0Qei4wABqLwAAOwAADAELIABBAWsiACAGQQlqaiACQTBqOgAACwJ/IAZBCWogAGohCEErQYCAxAAgASgCACIDQQFxIgIbIQQgAkEnIABrIglqIQJBlLjAAEEAIANBBHEbIQUCQAJAIAEoAghFBEBBASEAIAEgBCAFEFINAQwCCwJAAkACQAJAIAIgAUEMaigCACIDSQRAIAEtAABBCHENBEEAIQAgAyACayICIQNBASABLQAgIgcgB0EDRhtBA3FBAWsOAgECAwtBASEAIAEgBCAFEFINBAwFC0EAIQMgAiEADAELIAJBAXYhACACQQFqQQF2IQMLIABBAWohACABQRxqKAIAIQcgASgCBCECIAEoAhghCgJAA0AgAEEBayIARQ0BIAogAiAHKAIQEQQARQ0AC0EBDAQLQQEhACACQYCAxABGDQEgASAEIAUQUg0BIAEoAhggCCAJIAEoAhwoAgwRBQANASABKAIcIQQgASgCGCEBQQAhAAJ/A0AgAyAAIANGDQEaIABBAWohACABIAIgBCgCEBEEAEUNAAsgAEEBawsgA0khAAwBCyABKAIEIQcgAUEwNgIEIAEtACAhCkEBIQAgAUEBOgAgIAEgBCAFEFINAEEAIQAgAyACayICIQMCQAJAAkBBASABLQAgIgQgBEEDRhtBA3FBAWsOAgABAgtBACEDIAIhAAwBCyACQQF2IQAgAkEBakEBdiEDCyAAQQFqIQAgAUEcaigCACECIAEoAgQhBCABKAIYIQUCQANAIABBAWsiAEUNASAFIAQgAigCEBEEAEUNAAtBAQwDC0EBIQAgBEGAgMQARg0AIAEoAhggCCAJIAEoAhwoAgwRBQANACABKAIcIQAgASgCGCEFQQAhAgJAA0AgAiADRg0BIAJBAWohAiAFIAQgACgCEBEEAEUNAAtBASEAIAJBAWsgA0kNAQsgASAKOgAgIAEgBzYCBEEADAILIAAMAQsgASgCGCAIIAkgAUEcaigCACgCDBEFAAsgBkEwaiQACwsAIAAQNiAAELABCysCAX8BfkIBIQIDQCAAIAFq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AAANAEHgs8AAC8EHYXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAAAAAAABhdHRlbXB0IHRvIGRpdmlkZSB3aXRoIG92ZXJmbG93ALAZEAASAAAADAIAAA0AAACwGRAAEgAAABgCAAAmAAAAsBkQABIAAAAYAgAAIwAAALAZEAASAAAAHgIAABcAAACwGRAAEgAAAB4CAAAUAAAAqqr//////gHu//9UrP//AupBYg9rDyoBw5z9ShTOEwJLd2TXrEtDAu3pxpKm+V8Cox4RoAEAAAADAAAABAAAAAQAAAAEAAAABQAAAAYAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAoAAOsaEAAVAAAAABsQAA4AAABsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMgGxAAGAAAAEkBAAAJAAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc0gbEAAcAAAARgIAAB8AAABIGxAAHAAAAEcCAAAeAAAABwAAAAwAAAAEAAAACAAAAAMAAAAIAAAABAAAAAkAAAAKAAAAEAAAAAQAAAALAAAADAAAAAMAAAAIAAAABAAAAA0AAAAOAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA6BsQABEAAADMGxAAHAAAAAUCAAAFAAAAEAAAAAAAAAABAAAAEQAAAGluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgAAAkHBAAIAAAAEQcEAASAAAAMDAwMTAyMDMwNDA1MDYwNzA4MDkxMDExMTIxMzE0MTUxNjE3MTgxOTIwMjEyMjIzMjQyNTI2MjcyODI5MzAzMTMyMzMzNDM1MzYzNzM4Mzk0MDQxNDI0MzQ0NDU0NjQ3NDg0OTUwNTE1MjUzNTQ1NTU2NTc1ODU5NjA2MTYyNjM2NDY1NjY2NzY4Njk3MDcxNzI3Mzc0NzU3Njc3Nzg3OTgwODE4MjgzODQ4NTg2ODc4ODg5OTA5MTkyOTM5NDk1OTY5Nzk4OTkgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5yc3JhbmdlIGVuZCBpbmRleCAAAABxHRAAEAAAADAdEAAiAAAAUh0QAB8AAABJAAAABQB7CXByb2R1Y2VycwIIbGFuZ3VhZ2UBBFJ1c3QADHByb2Nlc3NlZC1ieQMFcnVzdGMdMS42MS4wIChmZTViMTNkNjggMjAyMi0wNS0xOCkGd2FscnVzBjAuMTkuMAx3YXNtLWJpbmRnZW4SMC4yLjgxICgwNjJhYTVmNzAp`;\n","import init, { bls_init, bls_verify } from '../vendor/bls/bls';\n\nexport let verify: (pk: Uint8Array, sig: Uint8Array, msg: Uint8Array) => boolean;\n\n/**\n *\n * @param pk primary key: Uint8Array\n * @param sig signature: Uint8Array\n * @param msg message: Uint8Array\n * @returns Promise resolving a boolean\n */\nexport async function blsVerify(\n pk: Uint8Array,\n sig: Uint8Array,\n msg: Uint8Array,\n): Promise {\n if (!verify) {\n await init();\n if (bls_init() !== 0) {\n throw new Error('Cannot initialize BLS');\n }\n verify = (pk1, sig1, msg1) => {\n // Reorder things from what the WASM expects (sig, m, w).\n return bls_verify(sig1, msg1, pk1) === 0;\n };\n }\n return verify(pk, sig, msg);\n}\n","import * as cbor from './cbor';\nimport { AgentError } from './errors';\nimport { hash } from './request_id';\nimport { blsVerify } from './utils/bls';\nimport { concat, fromHex, toHex } from './utils/buffer';\nimport { Principal } from '@dfinity/principal';\n\n/**\n * A certificate may fail verification with respect to the provided public key\n */\nexport class CertificateVerificationError extends AgentError {\n constructor(reason: string) {\n super(`Invalid certificate: ${reason}`);\n }\n}\n\ninterface Cert {\n tree: HashTree;\n signature: ArrayBuffer;\n delegation?: Delegation;\n}\n\nconst enum NodeId {\n Empty = 0,\n Fork = 1,\n Labeled = 2,\n Leaf = 3,\n Pruned = 4,\n}\n\nexport type HashTree =\n | [NodeId.Empty]\n | [NodeId.Fork, HashTree, HashTree]\n | [NodeId.Labeled, ArrayBuffer, HashTree]\n | [NodeId.Leaf, ArrayBuffer]\n | [NodeId.Pruned, ArrayBuffer];\n\n/**\n * Make a human readable string out of a hash tree.\n * @param tree\n */\nexport function hashTreeToString(tree: HashTree): string {\n const indent = (s: string) =>\n s\n .split('\\n')\n .map(x => ' ' + x)\n .join('\\n');\n function labelToString(label: ArrayBuffer): string {\n const decoder = new TextDecoder(undefined, { fatal: true });\n try {\n return JSON.stringify(decoder.decode(label));\n } catch (e) {\n return `data(...${label.byteLength} bytes)`;\n }\n }\n\n switch (tree[0]) {\n case NodeId.Empty:\n return '()';\n case NodeId.Fork: {\n const left = hashTreeToString(tree[1]);\n const right = hashTreeToString(tree[2]);\n return `sub(\\n left:\\n${indent(left)}\\n---\\n right:\\n${indent(right)}\\n)`;\n }\n case NodeId.Labeled: {\n const label = labelToString(tree[1]);\n const sub = hashTreeToString(tree[2]);\n return `label(\\n label:\\n${indent(label)}\\n sub:\\n${indent(sub)}\\n)`;\n }\n case NodeId.Leaf: {\n return `leaf(...${tree[1].byteLength} bytes)`;\n }\n case NodeId.Pruned: {\n return `pruned(${toHex(new Uint8Array(tree[1]))}`;\n }\n default: {\n return `unknown(${JSON.stringify(tree[0])})`;\n }\n }\n}\n\ninterface Delegation extends Record {\n subnet_id: ArrayBuffer;\n certificate: ArrayBuffer;\n}\n\nfunction isBufferEqual(a: ArrayBuffer, b: ArrayBuffer): boolean {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n const a8 = new Uint8Array(a);\n const b8 = new Uint8Array(b);\n for (let i = 0; i < a8.length; i++) {\n if (a8[i] !== b8[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport interface CreateCertificateOptions {\n /**\n * The bytes encoding the certificate to be verified\n */\n certificate: ArrayBuffer;\n /**\n * The root key against which to verify the certificate\n * (normally, the root key of the IC main network)\n */\n rootKey: ArrayBuffer;\n /**\n * The effective canister ID of the request when verifying a response, or\n * the signing canister ID when verifying a certified variable.\n */\n canisterId: Principal;\n}\n\nexport class Certificate {\n private readonly cert: Cert;\n\n /**\n * Create a new instance of a certificate, automatically verifying it. Throws a\n * CertificateVerificationError if the certificate cannot be verified.\n * @constructs {@link AuthClient}\n * @param {CreateCertificateOptions} options\n * @see {@link CreateCertificateOptions}\n * @param {ArrayBuffer} options.certificate The bytes of the certificate\n * @param {ArrayBuffer} options.rootKey The root key to verify against\n * @param {Principal} options.canisterId The effective or signing canister ID\n * @throws {CertificateVerificationError}\n */\n public static async create(options: CreateCertificateOptions): Promise {\n const cert = new Certificate(options.certificate, options.rootKey, options.canisterId);\n await cert.verify();\n return cert;\n }\n\n private constructor(\n certificate: ArrayBuffer,\n private _rootKey: ArrayBuffer,\n private _canisterId: Principal,\n ) {\n this.cert = cbor.decode(new Uint8Array(certificate));\n }\n\n public lookup(path: Array): ArrayBuffer | undefined {\n return lookup_path(path, this.cert.tree);\n }\n\n private async verify(): Promise {\n const rootHash = await reconstruct(this.cert.tree);\n const derKey = await this._checkDelegationAndGetKey(this.cert.delegation);\n const sig = this.cert.signature;\n const key = extractDER(derKey);\n const msg = concat(domain_sep('ic-state-root'), rootHash);\n let sigVer = false;\n try {\n sigVer = await blsVerify(new Uint8Array(key), new Uint8Array(sig), new Uint8Array(msg));\n } catch (err) {\n sigVer = false;\n }\n if (!sigVer) {\n throw new CertificateVerificationError('Signature verification failed');\n }\n }\n\n private async _checkDelegationAndGetKey(d?: Delegation): Promise {\n if (!d) {\n return this._rootKey;\n }\n const cert: Certificate = await Certificate.create({\n certificate: d.certificate,\n rootKey: this._rootKey,\n canisterId: this._canisterId,\n });\n\n if (this._canisterId.compareTo(Principal.managementCanister()) !== 'eq') {\n const rangeLookup = cert.lookup(['subnet', d.subnet_id, 'canister_ranges']);\n if (!rangeLookup) {\n throw new CertificateVerificationError(\n `Could not find canister ranges for subnet 0x${toHex(d.subnet_id)}`,\n );\n }\n const ranges_arr: Array<[Uint8Array, Uint8Array]> = cbor.decode(rangeLookup);\n const ranges: Array<[Principal, Principal]> = ranges_arr.map(v => [\n Principal.fromUint8Array(v[0]),\n Principal.fromUint8Array(v[1]),\n ]);\n\n const canisterInRange = ranges.some(\n r => r[0].ltEq(this._canisterId) && r[1].gtEq(this._canisterId),\n );\n if (!canisterInRange) {\n throw new CertificateVerificationError(\n `Canister ${this._canisterId} not in range of delegations for subnet 0x${toHex(\n d.subnet_id,\n )}`,\n );\n }\n }\n const publicKeyLookup = cert.lookup(['subnet', d.subnet_id, 'public_key']);\n if (!publicKeyLookup) {\n throw new Error(`Could not find subnet key for subnet 0x${toHex(d.subnet_id)}`);\n }\n return publicKeyLookup;\n }\n}\n\nconst DER_PREFIX = fromHex(\n '308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100',\n);\nconst KEY_LENGTH = 96;\n\nfunction extractDER(buf: ArrayBuffer): ArrayBuffer {\n const expectedLength = DER_PREFIX.byteLength + KEY_LENGTH;\n if (buf.byteLength !== expectedLength) {\n throw new TypeError(`BLS DER-encoded public key must be ${expectedLength} bytes long`);\n }\n const prefix = buf.slice(0, DER_PREFIX.byteLength);\n if (!isBufferEqual(prefix, DER_PREFIX)) {\n throw new TypeError(\n `BLS DER-encoded public key is invalid. Expect the following prefix: ${DER_PREFIX}, but get ${prefix}`,\n );\n }\n\n return buf.slice(DER_PREFIX.byteLength);\n}\n\n/**\n * @param t\n */\nexport async function reconstruct(t: HashTree): Promise {\n switch (t[0]) {\n case NodeId.Empty:\n return hash(domain_sep('ic-hashtree-empty'));\n case NodeId.Pruned:\n return t[1] as ArrayBuffer;\n case NodeId.Leaf:\n return hash(concat(domain_sep('ic-hashtree-leaf'), t[1] as ArrayBuffer));\n case NodeId.Labeled:\n return hash(\n concat(\n domain_sep('ic-hashtree-labeled'),\n t[1] as ArrayBuffer,\n await reconstruct(t[2] as HashTree),\n ),\n );\n case NodeId.Fork:\n return hash(\n concat(\n domain_sep('ic-hashtree-fork'),\n await reconstruct(t[1] as HashTree),\n await reconstruct(t[2] as HashTree),\n ),\n );\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction domain_sep(s: string): ArrayBuffer {\n const len = new Uint8Array([s.length]);\n const str = new TextEncoder().encode(s);\n return concat(len, str);\n}\n\n/**\n * @param path\n * @param tree\n */\nexport function lookup_path(\n path: Array,\n tree: HashTree,\n): ArrayBuffer | undefined {\n if (path.length === 0) {\n switch (tree[0]) {\n case NodeId.Leaf: {\n return new Uint8Array(tree[1]).buffer;\n }\n default: {\n return undefined;\n }\n }\n }\n\n const label = typeof path[0] === 'string' ? new TextEncoder().encode(path[0]) : path[0];\n const t = find_label(label, flatten_forks(tree));\n if (t) {\n return lookup_path(path.slice(1), t);\n }\n}\nfunction flatten_forks(t: HashTree): HashTree[] {\n switch (t[0]) {\n case NodeId.Empty:\n return [];\n case NodeId.Fork:\n return flatten_forks(t[1] as HashTree).concat(flatten_forks(t[2] as HashTree));\n default:\n return [t];\n }\n}\nfunction find_label(l: ArrayBuffer, trees: HashTree[]): HashTree | undefined {\n if (trees.length === 0) {\n return undefined;\n }\n for (const t of trees) {\n if (t[0] === NodeId.Labeled) {\n const p = t[1] as ArrayBuffer;\n if (isBufferEqual(l, p)) {\n return t[2];\n }\n }\n }\n}\n","import { Principal } from '@dfinity/principal';\nimport { Agent, RequestStatusResponseStatus } from '../agent';\nimport { Certificate } from '../certificate';\nimport { RequestId } from '../request_id';\nimport { toHex } from '../utils/buffer';\n\nexport * as strategy from './strategy';\nexport { defaultStrategy } from './strategy';\nexport type PollStrategy = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise;\nexport type PollStrategyFactory = () => PollStrategy;\n\n/**\n * Polls the IC to check the status of the given request then\n * returns the response bytes once the request has been processed.\n * @param agent The agent to use to poll read_state.\n * @param canisterId The effective canister ID.\n * @param requestId The Request ID to poll status for.\n * @param strategy A polling strategy.\n * @param request Request for the readState call.\n */\nexport async function pollForResponse(\n agent: Agent,\n canisterId: Principal,\n requestId: RequestId,\n strategy: PollStrategy,\n // eslint-disable-next-line\n request?: any,\n): Promise {\n const path = [new TextEncoder().encode('request_status'), requestId];\n const currentRequest = request ?? (await agent.createReadStateRequest?.({ paths: [path] }));\n const state = await agent.readState(canisterId, { paths: [path] }, undefined, currentRequest);\n if (agent.rootKey == null) throw new Error('Agent root key not initialized before polling');\n const cert = await Certificate.create({\n certificate: state.certificate,\n rootKey: agent.rootKey,\n canisterId: canisterId,\n });\n const maybeBuf = cert.lookup([...path, new TextEncoder().encode('status')]);\n let status;\n if (typeof maybeBuf === 'undefined') {\n // Missing requestId means we need to wait\n status = RequestStatusResponseStatus.Unknown;\n } else {\n status = new TextDecoder().decode(maybeBuf);\n }\n\n switch (status) {\n case RequestStatusResponseStatus.Replied: {\n return cert.lookup([...path, 'reply'])!;\n }\n\n case RequestStatusResponseStatus.Received:\n case RequestStatusResponseStatus.Unknown:\n case RequestStatusResponseStatus.Processing:\n // Execute the polling strategy, then retry.\n await strategy(canisterId, requestId, status);\n return pollForResponse(agent, canisterId, requestId, strategy, currentRequest);\n\n case RequestStatusResponseStatus.Rejected: {\n const rejectCode = new Uint8Array(cert.lookup([...path, 'reject_code'])!)[0];\n const rejectMessage = new TextDecoder().decode(cert.lookup([...path, 'reject_message'])!);\n throw new Error(\n `Call was rejected:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Reject code: ${rejectCode}\\n` +\n ` Reject text: ${rejectMessage}\\n`,\n );\n }\n\n case RequestStatusResponseStatus.Done:\n // This is _technically_ not an error, but we still didn't see the `Replied` status so\n // we don't know the result and cannot decode it.\n throw new Error(\n `Call was marked as done but we never saw the reply:\\n` +\n ` Request ID: ${toHex(requestId)}\\n`,\n );\n }\n throw new Error('unreachable');\n}\n","import { Buffer } from 'buffer/';\nimport {\n Agent,\n getDefaultAgent,\n QueryResponseRejected,\n QueryResponseStatus,\n ReplicaRejectCode,\n SubmitResponse,\n} from './agent';\nimport { getManagementCanister } from './canisters/management';\nimport { AgentError } from './errors';\nimport { IDL } from '@dfinity/candid';\nimport { pollForResponse, PollStrategyFactory, strategy } from './polling';\nimport { Principal } from '@dfinity/principal';\nimport { RequestId } from './request_id';\nimport { toHex } from './utils/buffer';\n\nexport class ActorCallError extends AgentError {\n constructor(\n public readonly canisterId: Principal,\n public readonly methodName: string,\n public readonly type: 'query' | 'update',\n public readonly props: Record,\n ) {\n super(\n [\n `Call failed:`,\n ` Canister: ${canisterId.toText()}`,\n ` Method: ${methodName} (${type})`,\n ...Object.getOwnPropertyNames(props).map(n => ` \"${n}\": ${JSON.stringify(props[n])}`),\n ].join('\\n'),\n );\n }\n}\n\nexport class QueryCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly result: QueryResponseRejected,\n ) {\n super(canisterId, methodName, 'query', {\n Status: result.status,\n Code: ReplicaRejectCode[result.reject_code] ?? `Unknown Code \"${result.reject_code}\"`,\n Message: result.reject_message,\n });\n }\n}\n\nexport class UpdateCallRejectedError extends ActorCallError {\n constructor(\n canisterId: Principal,\n methodName: string,\n public readonly requestId: RequestId,\n public readonly response: SubmitResponse['response'],\n ) {\n super(canisterId, methodName, 'update', {\n 'Request ID': toHex(requestId),\n 'HTTP status code': response.status.toString(),\n 'HTTP status text': response.statusText,\n });\n }\n}\n\n/**\n * Configuration to make calls to the Replica.\n */\nexport interface CallConfig {\n /**\n * An agent to use in this call, otherwise the actor or call will try to discover the\n * agent to use.\n */\n agent?: Agent;\n\n /**\n * A polling strategy factory that dictates how much and often we should poll the\n * read_state endpoint to get the result of an update call.\n */\n pollingStrategyFactory?: PollStrategyFactory;\n\n /**\n * The canister ID of this Actor.\n */\n canisterId?: string | Principal;\n\n /**\n * The effective canister ID. This should almost always be ignored.\n */\n effectiveCanisterId?: Principal;\n}\n\n/**\n * Configuration that can be passed to customize the Actor behaviour.\n */\nexport interface ActorConfig extends CallConfig {\n /**\n * The Canister ID of this Actor. This is required for an Actor.\n */\n canisterId: string | Principal;\n\n /**\n * An override function for update calls' CallConfig. This will be called on every calls.\n */\n callTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial | void;\n\n /**\n * An override function for query calls' CallConfig. This will be called on every query.\n */\n queryTransform?(\n methodName: string,\n args: unknown[],\n callConfig: CallConfig,\n ): Partial | void;\n}\n\n// TODO: move this to proper typing when Candid support TypeScript.\n/**\n * A subclass of an actor. Actor class itself is meant to be a based class.\n */\nexport type ActorSubclass> = Actor & T;\n\n/**\n * An actor method type, defined for each methods of the actor service.\n */\nexport interface ActorMethod {\n (...args: Args): Promise;\n withOptions(options: CallConfig): (...args: Args) => Promise;\n}\n\n/**\n * The mode used when installing a canister.\n */\nexport enum CanisterInstallMode {\n Install = 'install',\n Reinstall = 'reinstall',\n Upgrade = 'upgrade',\n}\n\n/**\n * Internal metadata for actors. It's an enhanced version of ActorConfig with\n * some fields marked as required (as they are defaulted) and canisterId as\n * a Principal type.\n */\ninterface ActorMetadata {\n service: IDL.ServiceClass;\n agent?: Agent;\n config: ActorConfig;\n}\n\nconst metadataSymbol = Symbol.for('ic-agent-metadata');\n\n/**\n * An actor base class. An actor is an object containing only functions that will\n * return a promise. These functions are derived from the IDL definition.\n */\nexport class Actor {\n /**\n * Get the Agent class this Actor would call, or undefined if the Actor would use\n * the default agent (global.ic.agent).\n * @param actor The actor to get the agent of.\n */\n public static agentOf(actor: Actor): Agent | undefined {\n return actor[metadataSymbol].config.agent;\n }\n\n /**\n * Get the interface of an actor, in the form of an instance of a Service.\n * @param actor The actor to get the interface of.\n */\n public static interfaceOf(actor: Actor): IDL.ServiceClass {\n return actor[metadataSymbol].service;\n }\n\n public static canisterIdOf(actor: Actor): Principal {\n return Principal.from(actor[metadataSymbol].config.canisterId);\n }\n\n public static async install(\n fields: {\n module: ArrayBuffer;\n mode?: CanisterInstallMode;\n arg?: ArrayBuffer;\n },\n config: ActorConfig,\n ): Promise {\n const mode = fields.mode === undefined ? CanisterInstallMode.Install : fields.mode;\n // Need to transform the arg into a number array.\n const arg = fields.arg ? [...new Uint8Array(fields.arg)] : [];\n // Same for module.\n const wasmModule = [...new Uint8Array(fields.module)];\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n await getManagementCanister(config).install_code({\n mode: { [mode]: null } as any,\n arg,\n wasm_module: wasmModule,\n canister_id: canisterId,\n });\n }\n\n public static async createCanister(config?: CallConfig): Promise {\n const { canister_id: canisterId } = await getManagementCanister(\n config || {},\n ).provisional_create_canister_with_cycles({ amount: [], settings: [] });\n\n return canisterId;\n }\n\n public static async createAndInstallCanister(\n interfaceFactory: IDL.InterfaceFactory,\n fields: {\n module: ArrayBuffer;\n arg?: ArrayBuffer;\n },\n config?: CallConfig,\n ): Promise {\n const canisterId = await this.createCanister(config);\n await this.install(\n {\n ...fields,\n },\n { ...config, canisterId },\n );\n\n return this.createActor(interfaceFactory, { ...config, canisterId });\n }\n\n public static createActorClass(interfaceFactory: IDL.InterfaceFactory): ActorConstructor {\n const service = interfaceFactory({ IDL });\n\n class CanisterActor extends Actor {\n [x: string]: ActorMethod;\n\n constructor(config: ActorConfig) {\n const canisterId =\n typeof config.canisterId === 'string'\n ? Principal.fromText(config.canisterId)\n : config.canisterId;\n\n super({\n config: {\n ...DEFAULT_ACTOR_CONFIG,\n ...config,\n canisterId,\n },\n service,\n });\n\n for (const [methodName, func] of service._fields) {\n this[methodName] = _createActorMethod(this, methodName, func);\n }\n }\n }\n\n return CanisterActor;\n }\n\n public static createActor>(\n interfaceFactory: IDL.InterfaceFactory,\n configuration: ActorConfig,\n ): ActorSubclass {\n return new (this.createActorClass(interfaceFactory))(\n configuration,\n ) as unknown as ActorSubclass;\n }\n\n private [metadataSymbol]: ActorMetadata;\n\n protected constructor(metadata: ActorMetadata) {\n this[metadataSymbol] = Object.freeze(metadata);\n }\n}\n\n// IDL functions can have multiple return values, so decoding always\n// produces an array. Ensure that functions with single or zero return\n// values behave as expected.\nfunction decodeReturnValue(types: IDL.Type[], msg: ArrayBuffer) {\n const returnValues = IDL.decode(types, Buffer.from(msg));\n switch (returnValues.length) {\n case 0:\n return undefined;\n case 1:\n return returnValues[0];\n default:\n return returnValues;\n }\n}\n\nconst DEFAULT_ACTOR_CONFIG = {\n pollingStrategyFactory: strategy.defaultStrategy,\n};\n\nexport type ActorConstructor = new (config: ActorConfig) => ActorSubclass;\n\nfunction _createActorMethod(actor: Actor, methodName: string, func: IDL.FuncClass): ActorMethod {\n let caller: (options: CallConfig, ...args: unknown[]) => Promise;\n if (func.annotations.includes('query')) {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.queryTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const cid = Principal.from(options.canisterId || actor[metadataSymbol].config.canisterId);\n const arg = IDL.encode(func.argTypes, args);\n\n const result = await agent.query(cid, { methodName, arg });\n\n switch (result.status) {\n case QueryResponseStatus.Rejected:\n throw new QueryCallRejectedError(cid, methodName, result);\n\n case QueryResponseStatus.Replied:\n return decodeReturnValue(func.retTypes, result.reply.arg);\n }\n };\n } else {\n caller = async (options, ...args) => {\n // First, if there's a config transformation, call it.\n options = {\n ...options,\n ...actor[metadataSymbol].config.callTransform?.(methodName, args, {\n ...actor[metadataSymbol].config,\n ...options,\n }),\n };\n\n const agent = options.agent || actor[metadataSymbol].config.agent || getDefaultAgent();\n const { canisterId, effectiveCanisterId, pollingStrategyFactory } = {\n ...DEFAULT_ACTOR_CONFIG,\n ...actor[metadataSymbol].config,\n ...options,\n };\n const cid = Principal.from(canisterId);\n const ecid = effectiveCanisterId !== undefined ? Principal.from(effectiveCanisterId) : cid;\n const arg = IDL.encode(func.argTypes, args);\n const { requestId, response } = await agent.call(cid, {\n methodName,\n arg,\n effectiveCanisterId: ecid,\n });\n\n if (!response.ok) {\n throw new UpdateCallRejectedError(cid, methodName, requestId, response);\n }\n\n const pollStrategy = pollingStrategyFactory();\n const responseBytes = await pollForResponse(agent, ecid, requestId, pollStrategy);\n\n if (responseBytes !== undefined) {\n return decodeReturnValue(func.retTypes, responseBytes);\n } else if (func.retTypes.length === 0) {\n return undefined;\n } else {\n throw new Error(`Call was returned undefined, but type [${func.retTypes.join(',')}].`);\n }\n };\n }\n\n const handler = (...args: unknown[]) => caller({}, ...args);\n handler.withOptions =\n (options: CallConfig) =>\n (...args: unknown[]) =>\n caller(options, ...args);\n return handler as ActorMethod;\n}\n","import { Principal } from '@dfinity/principal';\nimport { RequestId, RequestStatusResponseStatus } from '..';\nimport { toHex } from '../utils/buffer';\nimport { PollStrategy } from './index';\n\nexport type Predicate = (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n) => Promise;\n\nconst FIVE_MINUTES_IN_MSEC = 5 * 60 * 1000;\n\n/**\n * A best practices polling strategy: wait 2 seconds before the first poll, then 1 second\n * with an exponential backoff factor of 1.2. Timeout after 5 minutes.\n */\nexport function defaultStrategy(): PollStrategy {\n return chain(conditionalDelay(once(), 1000), backoff(1000, 1.2), timeout(FIVE_MINUTES_IN_MSEC));\n}\n\n/**\n * Predicate that returns true once.\n */\nexport function once(): Predicate {\n let first = true;\n return async () => {\n if (first) {\n first = false;\n return true;\n }\n return false;\n };\n}\n\n/**\n * Delay the polling once.\n * @param condition A predicate that indicates when to delay.\n * @param timeInMsec The amount of time to delay.\n */\nexport function conditionalDelay(condition: Predicate, timeInMsec: number): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (await condition(canisterId, requestId, status)) {\n return new Promise(resolve => setTimeout(resolve, timeInMsec));\n }\n };\n}\n\n/**\n * Error out after a maximum number of polling has been done.\n * @param count The maximum attempts to poll.\n */\nexport function maxAttempts(count: number): PollStrategy {\n let attempts = count;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (--attempts <= 0) {\n throw new Error(\n `Failed to retrieve a reply for request after ${count} attempts:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * Throttle polling.\n * @param throttleInMsec Amount in millisecond to wait between each polling.\n */\nexport function throttle(throttleInMsec: number): PollStrategy {\n return () => new Promise(resolve => setTimeout(resolve, throttleInMsec));\n}\n\n/**\n * Reject a call after a certain amount of time.\n * @param timeInMsec Time in milliseconds before the polling should be rejected.\n */\nexport function timeout(timeInMsec: number): PollStrategy {\n const end = Date.now() + timeInMsec;\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n if (Date.now() > end) {\n throw new Error(\n `Request timed out after ${timeInMsec} msec:\\n` +\n ` Request ID: ${toHex(requestId)}\\n` +\n ` Request status: ${status}\\n`,\n );\n }\n };\n}\n\n/**\n * A strategy that throttle, but using an exponential backoff strategy.\n * @param startingThrottleInMsec The throttle in milliseconds to start with.\n * @param backoffFactor The factor to multiple the throttle time between every poll. For\n * example if using 2, the throttle will double between every run.\n */\nexport function backoff(startingThrottleInMsec: number, backoffFactor: number): PollStrategy {\n let currentThrottling = startingThrottleInMsec;\n\n return () =>\n new Promise(resolve =>\n setTimeout(() => {\n currentThrottling *= backoffFactor;\n resolve();\n }, currentThrottling),\n );\n}\n\n/**\n * Chain multiple polling strategy. This _chains_ the strategies, so if you pass in,\n * say, two throttling strategy of 1 second, it will result in a throttle of 2 seconds.\n * @param strategies A strategy list to chain.\n */\nexport function chain(...strategies: PollStrategy[]): PollStrategy {\n return async (\n canisterId: Principal,\n requestId: RequestId,\n status: RequestStatusResponseStatus,\n ) => {\n for (const a of strategies) {\n await a(canisterId, requestId, status);\n }\n };\n}\n","import { Buffer } from \"buffer\";\nimport { toHexString } from \"@dfinity/candid\";\nimport { getCrc32 } from \"@dfinity/principal/lib/cjs/utils/getCrc\";\nimport * as SHA1 from \"@dfinity/principal/lib/cjs/utils/sha224\";\nexport const ArrayToHexString = (byteArray) => {\n return Array.from(byteArray, function (byte) {\n return (\"0\" + (byte & 0xff).toString(16)).slice(-2);\n }).join(\"\");\n};\nexport const getUint8ArrayFromHex = (str) => {\n return Uint8Array.from(Buffer.from(str, \"hex\"));\n};\nexport const getToAccountIdentifier = (principal, s) => {\n const padding = new Buffer(\"\\x0Aaccount-id\");\n const array = new Uint8Array([\n ...padding,\n ...principal.toUint8Array(),\n ...getPrincipalSubAccountArray(s),\n ]);\n const hash = SHA1.sha224(array);\n const checksum = to32bits(getCrc32(hash));\n const array2 = new Uint8Array([...checksum, ...hash]);\n return toHexString(array2);\n};\nconst getPrincipalSubAccountArray = (principal) => {\n const p = Array.from(principal.toUint8Array());\n let tmp = Array(1).fill(p.length).concat(p);\n while (tmp.length < 32)\n tmp.push(0);\n return tmp;\n};\nconst to32bits = (num) => {\n let b = new ArrayBuffer(4);\n new DataView(b).setUint32(0, num);\n return Array.from(new Uint8Array(b));\n};\n","import CryptoJS from \"crypto-js\";\nclass AESEncrypt {\n ArrayBufferToWordArray(arrayBuffer) {\n const u8 = new Uint8Array(arrayBuffer, 0, arrayBuffer.byteLength);\n const len = u8.length;\n const words = new Array();\n for (let i = 0; i < len; i += 1) {\n words[i >>> 2] |= (u8[i] & 0xff) << (24 - (i % 4) * 8);\n }\n return CryptoJS.lib.WordArray.create(words, len);\n }\n WordArrayToArrayBuffer(wordArray) {\n const { words } = wordArray;\n const { sigBytes } = wordArray;\n const u8 = new Uint8Array(sigBytes);\n for (let i = 0; i < sigBytes; i += 1) {\n u8[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n }\n return u8;\n }\n AESEncData(metaData, key, iv) {\n let data;\n if (typeof metaData === \"string\") {\n const enc = new TextEncoder(); // always utf-8\n data = this.ArrayBufferToWordArray(enc.encode(metaData).buffer);\n }\n else {\n data = this.ArrayBufferToWordArray(metaData);\n }\n // 这里的data是WordBuffer类型的数据\n const bKey = CryptoJS.enc.Hex.parse(key);\n // const bKey = CryptoJS.enc.Utf8.parse(key);\n const bIv = CryptoJS.enc.Hex.parse(iv);\n // const bIv = CryptoJS.enc.Utf8.parse(iv);\n const encrypt = CryptoJS.AES.encrypt(data, bKey, {\n iv: bIv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n });\n return this.WordArrayToArrayBuffer(encrypt.ciphertext);\n }\n AESDecData(metaData, key, iv) {\n const data = AESEncryptApi.ArrayBufferToWordArray(metaData);\n // 这里的data是WordBuffer类型的数据\n const bKey = CryptoJS.enc.Hex.parse(key);\n // const bKey = CryptoJS.enc.Utf8.parse(key);\n const bIv = CryptoJS.enc.Hex.parse(iv);\n // const bIv = CryptoJS.enc.Utf8.parse(iv);\n //@ts-ignore\n const decrypt = CryptoJS.AES.decrypt({ ciphertext: data }, bKey, {\n iv: bIv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7,\n });\n return this.WordArrayToArrayBuffer(decrypt);\n }\n}\nexport const AESEncryptApi = new AESEncrypt();\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass RSAEncrypt {\n ab2str(buf) {\n //@ts-ignore\n return String.fromCharCode.apply(null, new Uint8Array(buf));\n }\n str2ab(str) {\n const buf = new ArrayBuffer(str.length);\n const bufView = new Uint8Array(buf);\n for (let i = 0, strLen = str.length; i < strLen; i++) {\n bufView[i] = str.charCodeAt(i);\n }\n return buf;\n }\n //获取RSA秘钥对\n generateKey() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield window.crypto.subtle.generateKey({\n name: \"RSA-OAEP\",\n // Consider using a 4096-bit key for systems that require long-term security\n modulusLength: 4096,\n publicExponent: new Uint8Array([1, 0, 1]),\n hash: \"SHA-256\",\n }, true, [\"encrypt\", \"decrypt\"]);\n });\n }\n //导入RSA秘钥\n importPrivateKey(pem) {\n return __awaiter(this, void 0, void 0, function* () {\n // fetch the part of the PEM string between header and footer\n const pemHeader = \"-----BEGIN PRIVATE KEY-----\";\n const pemFooter = \"-----END PRIVATE KEY-----\";\n const pemContents = pem.substring(pemHeader.length, pem.length - pemFooter.length);\n const binaryDerString = window.atob(pemContents);\n const binaryDer = this.str2ab(binaryDerString);\n return yield window.crypto.subtle.importKey(\"pkcs8\", binaryDer, {\n name: \"RSA-OAEP\",\n hash: \"SHA-256\",\n }, true, [\"decrypt\"]);\n });\n }\n importPublicKey(pem) {\n return __awaiter(this, void 0, void 0, function* () {\n // fetch the part of the PEM string between header and footer\n const pemHeader = \"-----BEGIN PUBLIC KEY-----\";\n const pemFooter = \"-----END PUBLIC KEY-----\";\n const pemContents = pem.substring(pemHeader.length, pem.length - pemFooter.length);\n // base64 decode the string to get the binary data\n const binaryDerString = window.atob(pemContents);\n // convert from a binary string to an ArrayBuffer\n const binaryDer = this.str2ab(binaryDerString);\n return window.crypto.subtle.importKey(\"spki\", binaryDer, {\n name: \"RSA-OAEP\",\n hash: \"SHA-256\",\n }, true, [\"encrypt\"]);\n });\n }\n //导出RSA私钥\n exportCryptoKey(key) {\n return __awaiter(this, void 0, void 0, function* () {\n const exported = yield window.crypto.subtle.exportKey(\"pkcs8\", key);\n const exportedAsString = this.ab2str(exported);\n const exportedAsBase64 = window.btoa(exportedAsString);\n return `-----BEGIN PRIVATE KEY-----${exportedAsBase64}-----END PRIVATE KEY-----`;\n });\n }\n //\n publicExportCryptoKey(key) {\n return __awaiter(this, void 0, void 0, function* () {\n const exported = yield window.crypto.subtle.exportKey(\"spki\", key);\n const exportedAsString = this.ab2str(exported);\n const exportedAsBase64 = window.btoa(exportedAsString);\n return `-----BEGIN PUBLIC KEY-----${exportedAsBase64}-----END PUBLIC KEY-----`;\n });\n }\n //加密AES秘钥\n encryptMessage(key, AESKey) {\n return __awaiter(this, void 0, void 0, function* () {\n let enc = new TextEncoder();\n let encoded = enc.encode(AESKey);\n const Key = yield this.importPublicKey(key);\n const ciphertext = yield window.crypto.subtle.encrypt({\n name: \"RSA-OAEP\",\n }, Key, encoded);\n const exportedAsString = this.ab2str(ciphertext);\n return window.btoa(exportedAsString);\n });\n }\n //解密AES秘钥\n decryptMessage(key, cipherText) {\n return __awaiter(this, void 0, void 0, function* () {\n const binaryDerString = window.atob(cipherText);\n const ciphertext = this.str2ab(binaryDerString);\n let decrypted = yield window.crypto.subtle.decrypt({\n name: \"RSA-OAEP\",\n }, key, ciphertext);\n let dec = new TextDecoder();\n return dec.decode(decrypted);\n });\n }\n}\nexport const RSAEncryptApi = new RSAEncrypt();\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { RSAEncryptApi } from \"./RSAEncrypt\";\nimport { AESEncryptApi } from \"./AESEncrypt\";\nclass Encrypt {\n aesKeyGen() {\n return __awaiter(this, void 0, void 0, function* () {\n let aesKey = \"\";\n const array = new BigUint64Array(16);\n window.crypto.getRandomValues(array);\n array.forEach(v => {\n aesKey += v.toString(16);\n });\n while (aesKey.length < 256)\n aesKey += \"0\";\n return aesKey;\n });\n }\n genRSAKey() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const keyPair = yield RSAEncryptApi.generateKey();\n const pemPrivateKey = yield RSAEncryptApi.exportCryptoKey(keyPair.privateKey);\n const pemPublicKey = yield RSAEncryptApi.publicExportCryptoKey(keyPair.publicKey);\n return {\n privateKey: pemPrivateKey,\n publicKey: pemPublicKey\n };\n }\n catch (e) {\n throw e;\n }\n });\n }\n encryptPrivateKey(privateKey, passwordHash, Iv) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const u8 = yield AESEncryptApi.AESEncData(privateKey, passwordHash, Iv);\n return String.fromCharCode.apply(null, \n //@ts-ignore\n new Uint8Array(u8));\n }\n catch (e) {\n throw e;\n }\n });\n }\n decryptPrivateKey(prePrivateKey, passwordHash, Iv) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const buf = new ArrayBuffer(prePrivateKey.length);\n const bufView = new Uint8Array(buf);\n for (let i = 0, strLen = prePrivateKey.length; i < strLen; i++) {\n bufView[i] = prePrivateKey.charCodeAt(i);\n }\n const plainText = AESEncryptApi.AESDecData(bufView.buffer, passwordHash, Iv);\n return new TextDecoder().decode(plainText);\n }\n catch (e) {\n throw e;\n }\n });\n }\n}\nexport const EncryptApi = new Encrypt();\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { idlFactory } from \"./did/metabox\";\nimport { Actor } from \"@dfinity/agent\";\nimport { Principal } from \"@dfinity/principal\";\nimport { getToAccountIdentifier, getUint8ArrayFromHex } from \"../utils\";\nexport const mb_cid = \"zbzr7-xyaaa-aaaan-qadeq-cai\";\nexport class MetaBox {\n constructor(agent) {\n this.metaBoxCai = mb_cid;\n this.agent = agent;\n this.MetaBoxActor = Actor.createActor(idlFactory, { agent, canisterId: this.metaBoxCai });\n }\n isNotFirstDataBox() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n return yield Actor.isNotFirstDataBox();\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_accountID() {\n return __awaiter(this, void 0, void 0, function* () {\n const principal = yield this.agent.getPrincipal();\n return getToAccountIdentifier(Principal.from(this.metaBoxCai), principal);\n });\n }\n createBoxFree(arg) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n const Arg = {\n 'metadata': arg\n };\n const res = yield Actor.createDataBoxFree(Arg);\n if (Object.keys(res)[0] === \"ok\")\n return resolve(res.ok);\n else\n reject(`${Object.keys(res.err)[0]}`);\n }\n catch (e) {\n reject(e);\n }\n }));\n });\n }\n createBoxFee(arg, is_need_refresh) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n const Arg = {\n 'metadata': arg\n };\n const res = yield Actor.createDataBoxFee(Arg, is_need_refresh);\n if (Object.keys(res)[0] === \"ok\")\n return resolve(res.ok);\n else\n reject(`${Object.keys(res.err)[0]}`);\n }\n catch (e) {\n reject(e);\n }\n }));\n });\n }\n getICP() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n const res = yield Actor.getIcp();\n return Number(res);\n }\n catch (e) {\n throw e;\n }\n });\n }\n getBoxes(principal) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.getBoxes(principal);\n }\n catch (e) {\n throw e;\n }\n });\n }\n deleteBox(delBoxArgs) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.deleteBox(delBoxArgs);\n }\n catch (e) {\n throw e;\n }\n });\n }\n transferDataboxOwner(canister_id, to) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.transferDataboxOwner(canister_id, to);\n }\n catch (e) {\n throw e;\n }\n });\n }\n startBox(boxInfo) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield this.MetaBoxActor.startBox(boxInfo);\n }\n catch (e) {\n throw e;\n }\n });\n }\n topUpBox(TopUpArgs) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.topUpBox(TopUpArgs);\n }\n catch (e) {\n throw e;\n }\n });\n }\n upgradeBox(UpgradeBoxArgs) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.upgradeBox(UpgradeBoxArgs);\n }\n catch (e) {\n throw e;\n }\n });\n }\n getDataBoxVersion() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.getDataBoxVersion();\n }\n catch (e) {\n throw e;\n }\n });\n }\n updateBoxInfo(BoxInfo__1) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.MetaBoxActor.updateBoxInfo(BoxInfo__1);\n }\n catch (e) {\n throw e;\n }\n });\n }\n createDataBoxControl(arg, is_need_refresh, controller) {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n const arg_0 = {\n metadata: arg\n };\n const res = yield Actor.createDataBoxControl(arg_0, is_need_refresh, controller ? [controller] : []);\n if (Object.keys(res)[0] === \"ok\")\n return resolve(res.ok);\n else\n reject(`${Object.keys(res.err)[0]}`);\n }\n catch (e) {\n throw e;\n }\n }));\n }\n withDrawICP(to, amount) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const Actor = this.MetaBoxActor;\n const tmp1 = getUint8ArrayFromHex(to);\n return yield Actor.transferOutICP(tmp1, BigInt(amount * 1e8));\n }\n catch (e) {\n throw e;\n }\n });\n }\n}\n","export const idlFactory = ({ IDL }) => {\n const DataErr = IDL.Variant({\n 'FileKeyErr': IDL.Null,\n 'FilePublic': IDL.Null,\n 'BlobSizeError': IDL.Null,\n 'PermissionDenied': IDL.Null,\n 'SharedRepeat': IDL.Null,\n 'FlagErr': IDL.Null,\n 'SharedNotSet': IDL.Null,\n 'MemoryInsufficient': IDL.Null,\n 'FileAesPubKeyNotExist': IDL.Null,\n 'UserAccessErr': IDL.Null,\n 'FileLocationErr': IDL.Null,\n 'FileRepeat': IDL.Null,\n 'ShareRepeat': IDL.Null,\n });\n const Result_1 = IDL.Variant({ 'ok': IDL.Text, 'err': DataErr });\n const Result_11 = IDL.Variant({ 'ok': IDL.Nat64, 'err': DataErr });\n const State = IDL.Record({\n 'balance': IDL.Nat,\n 'memory_size': IDL.Nat,\n 'stable_memory_size': IDL.Nat64,\n });\n const Result_10 = IDL.Variant({ 'ok': State, 'err': DataErr });\n const Result_7 = IDL.Variant({ 'ok': IDL.Nat, 'err': DataErr });\n const FileLocation = IDL.Variant({\n 'All': IDL.Null,\n 'EnCrypt': IDL.Null,\n 'Shared': IDL.Null,\n 'Plain': IDL.Null,\n });\n const FieldLocation = IDL.Variant({\n 'ICEnCrypt': IDL.Vec(IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64))),\n 'IPFS': IDL.Text,\n 'Arweave': IDL.Text,\n 'ICFlag': IDL.Null,\n 'ICPlain': IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const Time = IDL.Int;\n const AssetExt = IDL.Record({\n 'file_extension': IDL.Text,\n 'share_other': IDL.Vec(IDL.Principal),\n 'upload_status': IDL.Bool,\n 'bucket_id': IDL.Principal,\n 'owner': IDL.Principal,\n 'aes_pub_key': IDL.Opt(IDL.Text),\n 'is_private': IDL.Bool,\n 'file_name': IDL.Text,\n 'file_key': IDL.Text,\n 'total_size': IDL.Nat64,\n 'page_field': FieldLocation,\n 'create_time': Time,\n 'need_query_times': IDL.Nat,\n });\n const FileExt = IDL.Variant({\n 'EncryptFileExt': AssetExt,\n 'SharedFileExt': IDL.Record({\n 'file_extension': IDL.Text,\n 'other': IDL.Principal,\n 'description': IDL.Text,\n 'file_name': IDL.Text,\n 'file_key': IDL.Text,\n 'page_field': FieldLocation,\n 'create_time': Time,\n 'isPublic': IDL.Bool,\n 'receiver': IDL.Principal,\n }),\n 'PlainFileExt': AssetExt,\n });\n const Result_2 = IDL.Variant({ 'ok': FileExt, 'err': DataErr });\n const Result_9 = IDL.Variant({\n 'ok': IDL.Tuple(IDL.Vec(FileExt), IDL.Vec(FileExt), IDL.Vec(FileExt)),\n 'err': DataErr,\n });\n const GET = IDL.Record({ 'flag': IDL.Nat, 'file_key': IDL.Text });\n const Result_8 = IDL.Variant({\n 'ok': IDL.Vec(IDL.Vec(IDL.Nat8)),\n 'err': DataErr,\n });\n const Result_6 = IDL.Variant({\n 'ok': IDL.Vec(IDL.Principal),\n 'err': DataErr,\n });\n const Result_5 = IDL.Variant({ 'ok': IDL.Vec(FileExt), 'err': DataErr });\n const Result_4 = IDL.Variant({ 'ok': IDL.Vec(IDL.Nat8), 'err': DataErr });\n const Result_3 = IDL.Variant({\n 'ok': IDL.Tuple(IDL.Vec(FileExt), IDL.Vec(FileExt)),\n 'err': DataErr,\n });\n const HeaderField = IDL.Tuple(IDL.Text, IDL.Text);\n const HttpRequest = IDL.Record({\n 'url': IDL.Text,\n 'method': IDL.Text,\n 'body': IDL.Vec(IDL.Nat8),\n 'headers': IDL.Vec(HeaderField),\n });\n const StreamingToken__1 = IDL.Record({ 'key': IDL.Text, 'index': IDL.Nat });\n const StreamingCallbackHttpResponse__1 = IDL.Record({\n 'token': IDL.Opt(StreamingToken__1),\n 'body': IDL.Vec(IDL.Nat8),\n });\n const StreamingStrategy = IDL.Variant({\n 'Callback': IDL.Record({\n 'token': StreamingToken__1,\n 'callback': IDL.Func([StreamingToken__1], [StreamingCallbackHttpResponse__1], ['query']),\n }),\n });\n const HttpResponse = IDL.Record({\n 'body': IDL.Vec(IDL.Nat8),\n 'headers': IDL.Vec(HeaderField),\n 'streaming_strategy': IDL.Opt(StreamingStrategy),\n 'status_code': IDL.Nat16,\n });\n const Chunk = IDL.Record({ 'data': IDL.Vec(IDL.Nat8) });\n const PUT = IDL.Variant({\n 'IC': IDL.Record({\n 'file_extension': IDL.Text,\n 'order': IDL.Nat,\n 'chunk_number': IDL.Nat,\n 'chunk': Chunk,\n 'aes_pub_key': IDL.Opt(IDL.Text),\n 'is_private': IDL.Bool,\n 'file_name': IDL.Text,\n 'file_key': IDL.Text,\n 'total_size': IDL.Nat64,\n }),\n 'Other': IDL.Record({\n 'file_extension': IDL.Text,\n 'aes_pub_key': IDL.Opt(IDL.Text),\n 'is_private': IDL.Bool,\n 'file_name': IDL.Text,\n 'file_key': IDL.Text,\n 'total_size': IDL.Nat64,\n 'page_field': FieldLocation,\n }),\n });\n const FilePut = IDL.Variant({\n 'EncryptFilePut': PUT,\n 'SharedFilePut': IDL.Record({\n 'file_extension': IDL.Text,\n 'other': IDL.Principal,\n 'aes_pub_key': IDL.Opt(IDL.Text),\n 'description': IDL.Text,\n 'file_name': IDL.Text,\n 'file_key': IDL.Text,\n 'page_field': FieldLocation,\n 'isPublic': IDL.Bool,\n }),\n 'PlainFilePut': PUT,\n });\n const StreamingToken = IDL.Record({ 'key': IDL.Text, 'index': IDL.Nat });\n const StreamingCallbackHttpResponse = IDL.Record({\n 'token': IDL.Opt(StreamingToken__1),\n 'body': IDL.Vec(IDL.Nat8),\n });\n const Avatar = IDL.Record({\n 'data': IDL.Vec(IDL.Nat8),\n 'data_type': IDL.Text,\n });\n const Result = IDL.Variant({ 'ok': IDL.Null, 'err': DataErr });\n const DataBox = IDL.Service({\n 'addCon': IDL.Func([IDL.Principal], [Result_1], []),\n 'addPrivatePlainShare': IDL.Func([IDL.Text, IDL.Principal], [Result_1], []),\n 'avlSM': IDL.Func([], [Result_11], ['query']),\n 'canisterState': IDL.Func([], [Result_10], ['query']),\n 'clearBuffer': IDL.Func([], [], []),\n 'clearall': IDL.Func([], [Result_1], []),\n 'curControl': IDL.Func([], [IDL.Principal, IDL.Vec(IDL.Principal)], ['query']),\n 'cycleBalance': IDL.Func([], [Result_7], ['query']),\n 'deleteCon': IDL.Func([IDL.Principal], [Result_1], []),\n 'deleteFileFromKey': IDL.Func([IDL.Text, FileLocation], [Result_1], []),\n 'deleteShareFile': IDL.Func([IDL.Text, IDL.Principal], [Result_1], []),\n 'deleteSharedFile': IDL.Func([IDL.Text], [Result_1], []),\n 'getAssetextkey': IDL.Func([IDL.Text], [Result_2], ['query']),\n 'getAssetexts': IDL.Func([], [Result_9], ['query']),\n 'getCipher': IDL.Func([GET], [Result_8], ['query']),\n 'getDefaultDeviceShareDap': IDL.Func([IDL.Text], [Result_1], ['query']),\n 'getFileNums': IDL.Func([FileLocation], [Result_7], ['query']),\n 'getFileShareOther': IDL.Func([IDL.Text], [Result_6], ['query']),\n 'getOwner': IDL.Func([], [IDL.Principal], ['query']),\n 'getPageFiles': IDL.Func([FileLocation, IDL.Nat, IDL.Nat], [Result_5], ['query']),\n 'getPlain': IDL.Func([GET], [Result_4], ['query']),\n 'getShareFiles': IDL.Func([], [Result_3], ['query']),\n 'getSharedAesPublic': IDL.Func([IDL.Text], [Result_1], ['query']),\n 'getVersion': IDL.Func([], [IDL.Nat], ['query']),\n 'http_request': IDL.Func([HttpRequest], [HttpResponse], ['query']),\n 'put': IDL.Func([FilePut], [Result_2], []),\n 'removePrivatePlainShare': IDL.Func([IDL.Text, IDL.Principal], [Result_1], []),\n 'setPlainFilePubOrPri': IDL.Func([IDL.Text, IDL.Bool], [Result_1], []),\n 'setShareFile': IDL.Func([IDL.Text, IDL.Principal, IDL.Text], [Result_1], []),\n 'streamingCallback': IDL.Func([StreamingToken], [StreamingCallbackHttpResponse], ['query']),\n 'transferOwner': IDL.Func([IDL.Principal], [Result_1], []),\n 'uploadAvatar': IDL.Func([Avatar, IDL.Text], [Result], []),\n 'wallet_receive': IDL.Func([], [IDL.Nat], []),\n });\n return DataBox;\n};\nexport const init = ({ IDL }) => {\n return [IDL.Principal];\n};\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { idlFactory } from \"./did/databox\";\nimport { Actor } from \"@dfinity/agent\";\nimport { nanoid } from \"nanoid\";\nimport random from \"string-random\";\nimport { AESEncryptApi, EncryptApi, RSAEncryptApi } from \"../utils\";\nimport { MetaBox } from \"../metabox\";\nconst chunkSize = 1992288;\nconst ONE_BYTE_UPLOAD_USE_CYCLES = 2260;\nexport class DataBox {\n constructor(canisterId, agent) {\n this.agent = agent;\n this.DataBoxActor = Actor.createActor(idlFactory, { agent, canisterId });\n }\n boxState() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.canisterState();\n }\n catch (e) {\n throw e;\n }\n });\n }\n cycleBalance() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.cycleBalance();\n }\n catch (e) {\n throw e;\n }\n });\n }\n put_plain_files(files, is_private, key_arr, fileTypes) {\n return __awaiter(this, void 0, void 0, function* () {\n if (key_arr && key_arr.length !== files.length)\n throw new Error(\"文件数量与key数量不匹配\");\n if (fileTypes && fileTypes.length !== files.length)\n throw new Error(\"文件数量与类型数量不匹配\");\n try {\n const Actor = this.DataBoxActor;\n const allPromise = [];\n const keyArr = [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const key = key_arr ? key_arr[i] : nanoid();\n keyArr.push(key);\n const file_extension = fileTypes ? fileTypes[i] : file.type;\n const total_size = file.size;\n const total_index = Math.ceil(total_size / chunkSize);\n const allData = yield DataBox.FileRead(file);\n for (let i = 0; i < allData.length; i++) {\n const arg = {\n PlainFilePut: {\n IC: {\n file_extension,\n order: BigInt(i),\n chunk_number: BigInt(total_index),\n chunk: { data: allData[i] },\n aes_pub_key: [],\n file_name: file.name,\n file_key: key,\n total_size: BigInt(file.size),\n is_private: is_private\n }\n }\n };\n allPromise.push(Actor.put(arg));\n }\n }\n yield Promise.all(allPromise);\n return keyArr;\n }\n catch (e) {\n throw e;\n }\n });\n }\n static FileRead(file) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return new Promise((resolve, reject) => {\n let start = 0;\n let currentChunk = 0;\n const total_index = Math.ceil(file.size / chunkSize);\n const allData = [];\n let reader = new FileReader();\n reader.onload = function (e) {\n return __awaiter(this, void 0, void 0, function* () {\n allData.push(new Uint8Array(e.target.result));\n if (currentChunk === total_index)\n return resolve(allData);\n else\n loadChunk();\n });\n };\n reader.onerror = (error) => {\n reject(error);\n };\n const loadChunk = () => {\n const end = start + chunkSize;\n currentChunk++;\n reader.readAsArrayBuffer(file.slice(start, end));\n start = end;\n };\n loadChunk();\n });\n }\n catch (e) {\n throw e;\n }\n });\n }\n static encryptFileData(data, publicKey) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const AESKEY = yield EncryptApi.aesKeyGen();\n const AESIv = random(128);\n const encData = AESEncryptApi.AESEncData(data, AESKEY, AESIv);\n const encryptedAesKey = yield RSAEncryptApi.encryptMessage(publicKey, `${AESKEY}${AESIv}`);\n return { encData, encryptedAesKey };\n }\n catch (e) {\n throw e;\n }\n });\n }\n put_encrypt_files(files, is_private, publicKey, key_arr) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (key_arr && key_arr.length !== files.length)\n throw new Error(\"文件数量与key数量不匹配\");\n const Actor = this.DataBoxActor;\n const keyArr = [];\n const allPromise = [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const key = key_arr ? key_arr[i] : nanoid();\n keyArr.push(key);\n const total_size = file.size;\n const allData = yield DataBox.FileRead(file);\n const data = new Uint8Array(total_size);\n for (let i = 0; i < allData.length; i++) {\n data.set(allData[i], i * chunkSize);\n }\n const { encData, encryptedAesKey } = yield DataBox.encryptFileData(data, publicKey);\n const NewBlob = new Blob([encData]);\n const encryptedData = yield DataBox.FileRead(NewBlob);\n for (let i = 0; i < encryptedData.length; i++) {\n const arg = {\n EncryptFilePut: {\n IC: {\n file_extension: file.type,\n order: BigInt(i),\n chunk_number: BigInt(Math.ceil(NewBlob.size / chunkSize)),\n chunk: { data: encryptedData[i] },\n aes_pub_key: [encryptedAesKey],\n file_name: file.name,\n file_key: key,\n total_size: BigInt(NewBlob.size),\n is_private: is_private\n }\n }\n };\n allPromise.push(Actor.put(arg));\n }\n }\n yield Promise.all(allPromise);\n return keyArr;\n }\n catch (e) {\n throw e;\n }\n });\n }\n static getFile(decodeArr, length) {\n return __awaiter(this, void 0, void 0, function* () {\n const File = new Uint8Array(length);\n for (let i = 0; i < decodeArr.length; i++) {\n let slice = decodeArr[i];\n let start = 0;\n for (let j = 0; j < i; j++) {\n start += decodeArr[j].length;\n }\n File.set(slice, start);\n }\n return File;\n });\n }\n getData(file_info, isEncrypt) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const queryPromiseArr = [];\n if (file_info.ok) {\n const AssetExt = file_info.ok[isEncrypt ? \"EncryptFileExt\" : \"PlainFileExt\"];\n if (AssetExt) {\n const need_query_times = Number(AssetExt.need_query_times);\n for (let i = 0; i < need_query_times; i++) {\n queryPromiseArr.push(this.DataBoxActor[isEncrypt ? \"getCipher\" : \"getPlain\"]({\n file_key: AssetExt.file_key,\n flag: BigInt(i)\n }));\n }\n return yield Promise.all(queryPromiseArr);\n }\n else\n throw new Error(`this is not a ${isEncrypt ? \"encrypt\" : \"plain\"} file`);\n }\n else\n throw new Error(Object.keys(file_info.err)[0]);\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_plain_file(file_key) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const dataArr = [];\n let fileSize = 0;\n const file_info = yield this.get_file_info(file_key);\n const fileType = file_info.ok.PlainFileExt.file_extension;\n const res = yield this.getData(file_info, false);\n if (res[0] && res[0].ok) {\n res.forEach(e => {\n dataArr.push(e.ok);\n fileSize += e.ok.length;\n });\n const metadata = yield DataBox.getFile(dataArr, fileSize);\n return new Blob([metadata.buffer], {\n type: fileType,\n });\n }\n else\n throw new Error(Object.keys(res[0].err)[0]);\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_encrypt_file(file_key, privatekey) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const dataArr = [];\n let fileSize = 0;\n const file_info = yield this.get_file_info(file_key);\n const fileType = (_a = file_info === null || file_info === void 0 ? void 0 : file_info.ok) === null || _a === void 0 ? void 0 : _a.EncryptFileExt.file_extension;\n const res = yield this.getData(file_info, true);\n if (res[0] && res[0].ok) {\n res.forEach(e => {\n e.ok.forEach(value => {\n dataArr.push(value);\n fileSize += value.length;\n });\n });\n const metadata = yield DataBox.getFile(dataArr, fileSize);\n const privateKey = yield RSAEncryptApi.importPrivateKey(privatekey);\n const preFileAesKey = yield RSAEncryptApi.decryptMessage(privateKey, file_info.ok.EncryptFileExt.aes_pub_key[0]);\n const AesKey = preFileAesKey.slice(0, 256);\n const AesIv = preFileAesKey.slice(256);\n const plainText = AESEncryptApi.AESDecData(metadata, AesKey, AesIv);\n return new Blob([plainText.buffer], {\n type: fileType,\n });\n }\n else\n throw new Error(Object.keys(res[0].err)[0]);\n }\n catch (e) {\n throw e;\n }\n });\n }\n delete_box_plain_file(file_key) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.deleteFileFromKey(file_key, { 'Plain': null });\n }\n catch (e) {\n throw e;\n }\n });\n }\n delete_box_encrypted_file(file_key) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.deleteFileFromKey(file_key, { 'EnCrypt': null });\n }\n catch (e) {\n throw e;\n }\n });\n }\n clear_box() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.clearall();\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_file_info(file_key) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getAssetextkey(file_key);\n }\n catch (e) {\n throw e;\n }\n });\n }\n getVersion() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getVersion();\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_all_files_info() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getAssetexts();\n }\n catch (e) {\n throw e;\n }\n });\n }\n transferOwner(to) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.transferOwner(to);\n }\n catch (e) {\n throw e;\n }\n });\n }\n get_owner() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getOwner();\n }\n catch (e) {\n throw e;\n }\n });\n }\n setPlainFilePubOrPri(changePlainFilePermissionArg) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.setPlainFilePubOrPri(changePlainFilePermissionArg.file_key, changePlainFilePermissionArg.is_private);\n }\n catch (e) {\n throw e;\n }\n });\n }\n addPrivatePlainShare(shareFileArg) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.addPrivatePlainShare(shareFileArg.file_key, shareFileArg.to);\n }\n catch (e) {\n throw e;\n }\n });\n }\n removePrivatePlainShare(shareFileArg) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.removePrivatePlainShare(shareFileArg.file_key, shareFileArg.to);\n }\n catch (e) {\n throw e;\n }\n });\n }\n getShareFiles() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getShareFiles();\n }\n catch (e) {\n throw e;\n }\n });\n }\n is_need_upgrade() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const MBapi = new MetaBox(this.agent);\n const version = Number(yield this.getVersion());\n const new_version = Number(yield MBapi.getDataBoxVersion());\n return version < new_version;\n }\n catch (e) {\n throw e;\n }\n });\n }\n is_enough_to_upload(total_size) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield this.cycleBalance();\n if (Object.keys(res)[0] === \"ok\") { //@ts-ignore\n const balance = Number(res.ok);\n if (total_size * ONE_BYTE_UPLOAD_USE_CYCLES < balance) {\n return resolve(true);\n }\n else\n return reject(Number(total_size * ONE_BYTE_UPLOAD_USE_CYCLES - balance));\n //@ts-ignore\n }\n else\n return reject(String(Object.keys(res.err)[0]));\n }\n catch (e) {\n return reject(e);\n }\n }));\n });\n }\n /**\n *\n * @param {FileLocation} fileLocation 文件位置\n * @return {Result_7} 数据个数\n */\n getFileNums(fileLocation) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n return yield this.DataBoxActor.getFileNums(fileLocation);\n }\n catch (e) {\n throw e;\n }\n });\n }\n /**\n * 分页get数据\n *\n * @param {FileLocation} fileLocation 文件位置\n * @param {number} onePageFileNums 每一页的数据大小 不能超过5000\n * @param {number} pageIndex 取哪一页\n * @example\n * getPageFiles({Plain:null},2,0) 取明文数据,每一页有两个数据,取第一页\n */\n getPageFiles(fileLocation, onePageFileNums, pageIndex) {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n try {\n if (onePageFileNums > 5000)\n return reject(\"A page of data cannot exceed 5000\");\n const res = yield this.DataBoxActor.getPageFiles(fileLocation, BigInt(onePageFileNums), BigInt(pageIndex));\n if (Object.keys(res)[0] === \"ok\")\n return resolve(res.ok);\n else\n return reject(Object.keys(res.err)[0]);\n }\n catch (e) {\n throw e;\n }\n }));\n }\n}\n","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","/**\n * @file RosettaApi\n * @copyright Copyright (c) 2018-2021 Dylan Miller and dfinityexplorer contributors\n * @license MIT License\n */\nimport axios from 'axios';\nimport BigNumber from 'bignumber.js';\nimport jsonBigint from 'json-bigint';\n\n// Set useNativeBigInt to true and use BigInt once BigInt is widely supported.\nconst JSONbig = jsonBigint({ strict: true });\n\n/**\n * Types of Rosetta API errors.\n */\nexport const RosettaErrorType = Object.freeze({\n NotFound: 0,\n Timeout: 1,\n NetworkError: 2,\n});\n\n/**\n * Describes the cause of a Rosetta API error.\n */\nexport class RosettaError extends Error {\n /**\n * Create a RosettaError.\n * @param {String} message An error message describing the error.\n * @param {Number} status number The HTTP response status.\n */\n constructor(message, status) {\n super(message);\n switch (status) {\n case 408:\n this.errorType = RosettaErrorType.Timeout;\n break;\n case 500:\n this.errorType = RosettaErrorType.NotFound;\n break;\n default:\n this.errorType = RosettaErrorType.NetworkError;\n break;\n }\n }\n}\n\n/**\n * Contains information about a transaction.\n */\nexport class Transaction {\n /**\n * Create a Transaction.\n * @param {Any} rosettaTransaction The Rosetta Transaction object of the transaction.\n * @param {Number} blockIndex The index of the block containing the transaction.\n * milliseconds since the Unix Epoch.\n */\n constructor(rosettaTransaction, blockIndex) {\n this.blockIndex = blockIndex;\n this.hash = rosettaTransaction.transaction_identifier.hash;\n const timestampMs = rosettaTransaction.metadata.timestamp.div(1000000).toNumber();\n this.timestamp = new Date(timestampMs);\n const operations = rosettaTransaction.operations;\n if (operations.length >= 1) {\n this.type = operations[0].type;\n this.status = operations[0].status;\n this.account1Address = operations[0].account.address;\n this.amount = new BigNumber(operations[0].amount.value);\n // Negate amount for TRANSACTION and BURN, so that they appear in the UI as positive values.\n if (\n (operations[0].type === 'TRANSACTION' || operations[0].type === 'BURN') &&\n !this.amount.isZero()\n ) {\n this.amount = this.amount.negated();\n }\n } else {\n this.type = '';\n this.status = '';\n this.account1Address = '';\n this.amount = new BigNumber(0);\n }\n if (operations.length >= 2 && operations[1].type === 'TRANSACTION')\n this.account2Address = operations[1].account.address;\n else this.account2Address = '';\n if (operations.length >= 3 && operations[2].type === 'FEE')\n this.fee = new BigNumber(-operations[2].amount.value);\n else this.fee = new BigNumber(0);\n this.memo = new BigNumber(rosettaTransaction.metadata.memo);\n }\n}\n\n/**\n * Manages Rosetta API calls.\n */\nexport default class RosettaApi {\n /**\n * Create a RosettaApi.\n */\n constructor() {\n this.axios = axios.create({\n baseURL: 'https://rosetta-api.internetcomputer.org/',\n method: 'post',\n transformRequest: (data) => JSONbig.stringify(data),\n transformResponse: (data) => JSONbig.parse(data),\n headers: { 'Content-Type': 'application/json;charset=utf-8' },\n });\n\n this.networkIdentifier = this.networksList().then((res) =>\n res.network_identifiers.find(\n (networkIdentifier) => networkIdentifier.blockchain === 'Internet Computer',\n ),\n );\n }\n\n /**\n * Return the ICP account balance of the specified account.\n * @param {string} accountAddress The account address to get the ICP balance of.\n * @returns {Promise} The ICP account balance of the specified account, or\n * a RosettaError for error.\n */\n async getAccountBalance(accountAddress) {\n try {\n const response = await this.accountBalanceByAddress(accountAddress);\n return new BigNumber(response.balances[0].value);\n } catch (error) {\n //console.log(error);\n return new RosettaError(\n error.message,\n axios.isAxiosError(error) ? error?.response?.status : undefined,\n );\n }\n }\n\n /**\n * Return the latest block index.\n * @returns {Promise} The latest block index, or a RosettaError for error.\n */\n async getLastBlockIndex() {\n try {\n const response = await this.networkStatus();\n return response.current_block_identifier.index;\n } catch (error) {\n //console.log(error);\n return new RosettaError(\n error.message,\n axios.isAxiosError(error) ? error?.response?.status : undefined,\n );\n }\n }\n\n /**\n * Return the Transaction object with the specified hash.\n * @param {string} transactionHash The hash of the transaction to return.\n * @returns {Transaction|null} The Transaction object with the specified hash, or a RosettaError\n * for error.\n */\n async getTransaction(transactionHash) {\n try {\n const responseTransactions = await this.transactionsByHash(transactionHash);\n if (responseTransactions.transactions.length === 0)\n return new RosettaError('Transaction not found.', 500);\n\n return new Transaction(\n responseTransactions.transactions[0].transaction,\n responseTransactions.transactions[0].block_identifier.index,\n );\n } catch (error) {\n //console.log(error);\n return new RosettaError(\n error.message,\n axios.isAxiosError(error) ? error?.response?.status : undefined,\n );\n }\n }\n\n /**\n * Return an array of Transaction objects based on the specified parameters, or an empty array if\n * none found.\n * @param limit {number} The maximum number of transactions to return in one call.\n * @param maxBlockIndex {number} The block index to start at. If not specified, start at current\n * block.\n * @param offset {number} The offset from maxBlockIndex to start returning transactions.\n * @returns {Promise|null>} An array of Transaction objects, or a RosettaError\n * for error.\n */\n async getTransactions(limit, maxBlockIndex, offset) {\n try {\n // This function can be simplified once /search/transactions supports using the properties\n // max_block, offset, and limit.\n let blockIndex;\n if (maxBlockIndex) blockIndex = maxBlockIndex;\n else {\n // Get the latest block index.\n const response = await this.networkStatus();\n blockIndex = response.current_block_identifier.index;\n }\n if (offset) blockIndex = Math.max(blockIndex - offset, -1);\n const transactionCount = Math.min(limit, blockIndex + 1);\n const transactions = [];\n for (let i = 0; i < transactionCount; i++)\n transactions.push(await this.getTransactionByBlock(blockIndex - i));\n return transactions;\n } catch (error) {\n //console.log(error);\n return new RosettaError(\n error.message,\n axios.isAxiosError(error) ? error?.response?.status : undefined,\n );\n }\n }\n\n /**\n * Return an array of Transaction objects based on the specified parameters, or an empty array if\n * none found.\n * @param {string} accountAddress The account address to get the transactions of.\n * @returns {Promise|null>} An array of Transaction objects, or a RosettaError\n * for error.\n */\n async getTransactionsByAccount(accountAddress) {\n try {\n const response = await this.transactionsByAccount(accountAddress);\n const transactions = await Promise.all(\n response.transactions.map((blockTransaction) => {\n return new Transaction(\n blockTransaction.transaction,\n blockTransaction.block_identifier.index,\n );\n }),\n );\n return transactions.reverse();\n } catch (error) {\n //console.log(error);\n return new RosettaError(\n error.message,\n axios.isAxiosError(error) ? error?.response?.status : undefined,\n );\n }\n }\n\n /**\n * Return the Transaction corresponding to the specified block index (i.e., block height).\n * @param {number} blockIndex The index of the block to return the Transaction for.\n * @returns {Promise} The Transaction corresponding to the specified block index.\n * @private\n */\n async getTransactionByBlock(blockIndex) {\n const response = await this.blockByIndex(blockIndex);\n return new Transaction(response.block.transactions[0], blockIndex);\n }\n\n /**\n * Perform the specified http request and return the response data.\n * @param {string} url The server URL that will be used for the request.\n * @param {object} data The data to be sent as the request body.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async request(url, data) {\n return (await this.axios.request({ url: url, data: data })).data;\n }\n\n /**\n * Return the /network/list response, containing a list of NetworkIdentifiers that the Rosetta\n * server supports.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n networksList() {\n return this.request('/network/list', {});\n }\n\n /**\n * Return /network/status response, describing the current status of the network.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async networkStatus() {\n const networkIdentifier = await this.networkIdentifier;\n return this.request('/network/status', {\n network_identifier: networkIdentifier,\n });\n }\n\n /**\n * Return the /account/balance response for the specified account.\n * @param {string} accountAddress The account address to get the balance of.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async accountBalanceByAddress(accountAddress) {\n const networkIdentifier = await this.networkIdentifier;\n return this.request('/account/balance', {\n network_identifier: networkIdentifier,\n account_identifier: { address: accountAddress },\n });\n }\n\n /**\n * Return the /block response for the block corresponding to the specified block index (i.e.,\n * block height).\n * @param {number} blockIndex The index of the block to return.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async blockByIndex(blockIndex) {\n const networkIdentifier = await this.networkIdentifier;\n return this.request('/block', {\n network_identifier: networkIdentifier,\n block_identifier: { index: blockIndex },\n });\n }\n\n /**\n * Return the /search/transactions response for transactions containing an operation that affects\n * the specified account.\n * @param {string} accountAddress The account address to get the transactions of.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async transactionsByAccount(accountAddress) {\n const networkIdentifier = await this.networkIdentifier;\n return this.request('/search/transactions', {\n network_identifier: networkIdentifier,\n account_identifier: { address: accountAddress },\n });\n }\n\n /**\n * Return the /search/transactions response for transactions (only one) with the specified hash.\n * @param {string} transactionHash The hash of the transaction to return.\n * @returns {Promise} The response body that was provided by the server.\n * @private\n */\n async transactionsByHash(transactionHash) {\n const networkIdentifier = await this.networkIdentifier;\n return this.request('/search/transactions', {\n network_identifier: networkIdentifier,\n transaction_identifier: { hash: transactionHash },\n });\n }\n}\n","import { message } from 'antd';\nimport { Principal } from '@dfinity/principal';\nimport { DataBox, MetaBox } from 'js-databox';\nimport RosettaApi from './rosetta';\n\nexport const canCreateDataBox = async (agent) => {\n let api = new MetaBox(agent);\n let account = await api.get_accountID();\n let balance = (await new RosettaApi().getAccountBalance(account)).toNumber();\n if (balance < 10000000) {\n return 'Insufficient funds, Please send ICP to' + account;\n }\n return 'ok';\n};\n\nexport const createDatabox = async (name, agent) => {\n let api = new MetaBox(agent);\n let createDataboxRes = await api.createDataBoxControl(\n {\n is_private: true,\n box_name: name,\n box_type: { data_box: null },\n },\n true,\n Principal.fromText('knwmz-pmy6c-mpbat-2budy-tbzxb-tjtjw-jevzi-m2q7j-mq5wt-leaja-aqe'),\n );\n return createDataboxRes.toString();\n};\n\nexport const createDataBoxFee = async (name, agent) => {\n let api = new MetaBox(agent);\n let createDataboxRes = await api.createBoxFee(\n {\n is_private: true,\n box_name: name,\n box_type: { data_box: null },\n },\n true,\n );\n\n return createDataboxRes.toString();\n};\n\nexport const getDataBoxICP = async (agent) => {\n let api = new MetaBox(agent);\n let fee = await api.getICP();\n return fee;\n};\n\nexport const uploadFile = async (rcFile, canisterId, agent, mimType) => {\n console.log(\"reFileName:\",rcFile.name);\n console.log(\"========\");\n let api = new DataBox(canisterId, agent);\n if (rcFile.name.indexOf('.mp4') != -1) {\n console.log(rcFile.name);\n console.log('mp4 file');\n // let res = await api.put_plain_files([rcFile], false, [rcFile.name], [\"binary/octet-stream\"])\n return 'https://' + canisterId + '.raw.icp0.io/file/' + res[0];\n }\n let res = await api.put_plain_files([rcFile], false, [rcFile.name]);\n console.log(res);\n return 'https://' + canisterId + '.raw.icp0.io/file/' + res[0];\n\n // message.info(\"uploaded image:\", rcFile.name)\n};\n\nexport const getFileNums = async (canisterId, agent) => {\n let api = new DataBox(canisterId, agent);\n let res = await api.getFileNums({\n Plain: null,\n });\n // console.log(\"getFileNums:\",res.ok, typeof res.ok)\n return res.ok;\n};\n\nexport const getPageFiles = async (pageIndex, onePageFileNums, canisterId, agent) => {\n let api = new DataBox(canisterId, agent);\n let res = await api.getPageFiles(\n {\n Plain: null,\n },\n onePageFileNums,\n pageIndex,\n );\n // console.log(\"getPageFiles:\",res)\n return res;\n};\n\nexport const clearBox = async (canisterId, agent) => {\n let api = new DataBox(canisterId, agent);\n let res = await api.clear_box();\n return res;\n};\n","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, Divider, Input, InputNumber, message, Modal, Select, Upload } from 'antd';\nimport { RcFile } from 'antd/lib/upload';\nimport * as XLSX from 'xlsx';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { SyncOutlined } from '@ant-design/icons';\nimport { Principal } from '@dfinity/principal';\nimport Compressor from 'compressorjs';\nimport { connect } from 'dva';\nimport {\n createBBErc721Actor,\n createErc721Actor,\n MyCollection,\n queryMyCollections,\n} from '../../service';\nimport { uploadFile } from '../../service/metabox';\nimport { str2ab } from '../../utils/buffer';\nimport './index.less';\n\ntype fileComb = {\n index: string;\n item: any;\n thumb?: string;\n};\n\nconst BatchMintBBox: FC = (props: any) => {\n const { dispatch } = props;\n const { principal, shikuActor, agent, agentType, whitelist } = props.use_agent;\n\n const { Option } = Select;\n\n const [collectionType, setCollectionType] = useState('ext');\n\n const [uploadQueue, setUploadQueue] = useState([]);\n const [uploadLoaing, setUploadLoading] = useState(false);\n\n const [collectionInfo, setCollectionInfo] = useState({});\n const [myCollectionIds, setMyCollections] = useState([]);\n const [initialing, setInitialing] = useState(false);\n const [submitLoading, setSubmitLoading] = useState(false);\n const [toPrincipalID, setToPrincipalID] = useState('');\n const [publicUrlArr, setPublicUrlArr] = useState([]);\n const [propertiesArr, setPropertiesArr] = useState([]);\n // json 数组\n\n const [thumbQueue, setThumbQueue] = useState<(File | Blob)[]>([]);\n const [mimeType, setMimeType] = useState('image');\n\n const [loopTimes, setLoopTimes] = useState(1);\n\n const [canUpload, setCanUpload] = useState(false);\n const [resumePoint, setResumePoint] = useState(0);\n const [resumePointThumb, setResumePointThumb] = useState(0);\n\n useEffect(() => {\n getCollection();\n }, []);\n\n const getCollection = async () => {\n setInitialing(true);\n const collections = await queryMyCollections(shikuActor)();\n if (collections.length === 0) {\n message.warn('用户尚未创建collection');\n } else {\n setMyCollections(collections);\n }\n setInitialing(false);\n };\n\n const handleSelect = async (c: any) => {\n if (initialing === true) {\n return;\n }\n setCanUpload(false);\n let info = JSON.parse(c);\n fetch(\n 'https://yumi-frontend-assets.s3.ap-east-1.amazonaws.com/yumi/canisterId2BuckId/' +\n info.canisterId +\n '.json',\n ).then(async (res) => {\n let bucketId = await res.json();\n info.bucketId = bucketId[0];\n setCollectionInfo(info);\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist, info.bucketId],\n type: 'add',\n },\n }).then((r: any) => setCanUpload(true));\n });\n };\n\n const handletoPrincipalID = (e: any) => {\n setToPrincipalID(e.target.value);\n };\n\n const handleFinish = async () => {\n setSubmitLoading(true);\n\n //处理metadata\n const metadataArray: Uint8Array[] = [];\n for (let i = 0; i < loopTimes; i++) {\n publicUrlArr.forEach((item: fileComb, index: number) => {\n let metadata: any = {};\n\n //属性\n if (propertiesArr[index]) {\n if ('attributes' in propertiesArr[index].item)\n metadata.attributes = propertiesArr[index].item.attributes;\n if ('properties' in propertiesArr[index].item) {\n metadata.attributes = propertiesArr[index].item.properties.map(\n (item: any) => {\n return {\n trait_type: item.name,\n value: item.value,\n };\n },\n );\n }\n if ('name' in propertiesArr[index].item) {\n metadata.name = propertiesArr[index].item.name;\n }\n if ('description' in propertiesArr[index].item) {\n metadata.description = propertiesArr[index].item.description;\n }\n }\n\n //媒体类型\n metadata.mimeType = mimeType;\n\n //名\n metadata.url = item.item;\n\n if (mimeType == '3dmodel') {\n metadata.environmentImageThree =\n 'https://yumi-frontend-assets.s3.ap-east-1.amazonaws.com/yumi/components/1658988744307_warehouse.hdr';\n }\n if ('thumb' in item) metadata.thumb = item.thumb;\n if (collectionType === 'bbextMint') {\n metadata.isopen = false;\n metadata.name = collectionInfo.name;\n }\n metadataArray.push(str2ab(JSON.stringify(metadata)));\n });\n }\n\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist, collectionInfo.canisterId],\n type: 'add',\n },\n }).then(() => {\n if (collectionType === 'ext' || collectionType === 'bbextMint') {\n handleBatchMint(metadataArray);\n }\n if (collectionType === 'bbextPut') {\n handlePutMetadata(metadataArray);\n }\n });\n };\n\n const comp = (a: any, b: any) => {\n return 0.5 - Math.random();\n };\n\n const handlePutMetadata = (metadataArray: Uint8Array[]) => {\n let argsArr: any[] = metadataArray.map((item: Uint8Array) => {\n return {\n nonfungible: {\n metadata: [Array.from(item)],\n },\n };\n });\n\n argsArr.sort(comp);\n\n (async () => {\n const collectionActor = await createBBErc721Actor(agent)(collectionInfo.canisterId);\n //@ts-ignore\n await collectionActor.putNFTMetadata(argsArr);\n message.success('Batch Mint Success');\n setSubmitLoading(false);\n })();\n };\n\n const handleBatchMint = (metadataArray: Uint8Array[]) => {\n try {\n const argsArr: any[] = metadataArray.map((item: Uint8Array) => {\n return {\n to: {\n principal: Principal.fromText(toPrincipalID),\n },\n metadata: [Array.from(item)],\n };\n });\n (async () => {\n const collectionActor = await createErc721Actor(agent)(collectionInfo.canisterId);\n for (let i = 0; i < argsArr.length; i += 1000) {\n //@ts-ignore\n let res = await collectionActor.batchMintNFT(\n argsArr.slice(i, i + 1000 >= argsArr.length ? argsArr.length : i + 1000),\n );\n console.log(res);\n }\n message.success('Batch Mint Success');\n setSubmitLoading(false);\n })();\n } catch (err) {\n console.error(err);\n message.error('Something went wrong');\n setSubmitLoading(false);\n }\n };\n\n const handleUpload = async () => {\n if (!collectionInfo.name) {\n message.error('Choose a collection first');\n return;\n }\n setUploadLoading(true);\n for (let i = resumePoint; i < uploadQueue.length; i++) {\n let res: any = {};\n if (uploadQueue[i].size > 1024 && uploadQueue[i].type.slice(0, 5) === 'image') {\n handleCompress(uploadQueue[i]);\n }\n try {\n res = await uploadFile(uploadQueue[i], collectionInfo.bucketId, agent);\n } catch (error) {\n console.log(collectionInfo.bucketId, error);\n message.error('Check the log and cycles blance of your bucket');\n setResumePoint(i);\n setUploadLoading(false);\n return;\n }\n console.log(res);\n let newPublicUrlArr = publicUrlArr;\n newPublicUrlArr.push({\n index: uploadQueue[i].name.slice(0, uploadQueue[i].name.indexOf('.')),\n item: res,\n });\n setPublicUrlArr(newPublicUrlArr);\n setImageUploaded(newPublicUrlArr.length);\n }\n console.log(publicUrlArr);\n setResumePoint(0);\n setUploadLoading(false);\n };\n\n const handleCompress = (file: RcFile) => {\n new Compressor(file, {\n quality: 0.2,\n convertSize: 500000,\n success(result) {\n let newQueue = thumbQueue;\n newQueue.push(result);\n setThumbQueue(newQueue);\n setThumbReady(newQueue.length);\n },\n });\n };\n\n const clickCompress = () => {\n uploadQueue.forEach((item: RcFile) => {\n handleCompress(item);\n });\n };\n\n const [thumbLoading, setThumbLoading] = useState(false);\n const [thumbUploaded, setThumbUploaded] = useState(0);\n const [imageUploaded, setImageUploaded] = useState(0);\n const [jsonUploaded, setJsonUploaded] = useState(0);\n const [thumbReady, setThumbReady] = useState(0);\n\n const cmpForThumbQueue = (a: any, b: any) => {\n return parseInt(a.name) - parseInt(b.name);\n };\n\n const handleUploadThumb = async () => {\n if (!collectionInfo.name) {\n message.error('Choose a collection first');\n return;\n }\n setThumbLoading(true);\n thumbQueue.sort(cmpForThumbQueue);\n console.log(thumbQueue);\n for (let i = resumePointThumb; i < thumbQueue.length; i++) {\n let res: any = {};\n try {\n res = await uploadFile(thumbQueue[i], collectionInfo.bucketId, agent);\n } catch (error) {\n console.log(collectionInfo.bucketId, error);\n message.error('Check the log and cycles blance of your bucket');\n setResumePointThumb(i);\n setThumbLoading(false);\n return;\n }\n console.log(res);\n publicUrlArr[i] = {\n ...publicUrlArr[i],\n thumb: res,\n };\n console.log(publicUrlArr);\n setThumbUploaded(i + 1);\n }\n console.log(publicUrlArr);\n setResumePointThumb(0);\n setThumbLoading(false);\n };\n\n const cmp = (a: any, b: any) => {\n return parseInt(a.index) - parseInt(b.index);\n };\n\n return (\n \n
\n
\n Batch Mint NFT\n
\n\n
\n
Mint Type:
\n {\n setCollectionType(e);\n }}\n >\n \n \n \n \n
\n\n
\n
Mime Type:
\n {\n setMimeType(e);\n }}\n >\n \n \n \n \n
\n\n
\n
Collection
\n (\n <>\n {menu}\n
\n  Refresh your collection\n
\n \n )}\n >\n {myCollectionIds.map((c) => (\n \n ))}\n \n
\n\n
\n
NFT Target Principal
\n \n
\n\n
\n
Assets
\n
\n Loaded: {uploadQueue.length} Uploaded: {imageUploaded}\n
\n {\n setUploadQueue([...uploadQueue, ...fileList]);\n return false;\n }}\n >\n \n \n \n {resumePoint == 0 ? 'Upload' : 'Resume'}\n \n
\n\n
\n
Thumb
\n
\n Loaded: {thumbReady} Uploaded: {thumbUploaded}\n
\n {\n setThumbReady(thumbQueue.length + fileList.length);\n setThumbQueue([...thumbQueue, ...fileList]);\n return false;\n }}\n >\n \n \n \n {resumePointThumb == 0 ? 'Upload' : 'Resume'}\n \n
\n\n
\n
Description JSON
\n
Uploaded: {jsonUploaded}
\n {\n if (file.name.slice(-5) === '.xlsx') {\n const buffer = await file.arrayBuffer();\n const sheet = XLSX.read(buffer, { type: 'buffer' });\n const sn = sheet.SheetNames[0];\n const json = XLSX.utils.sheet_to_json(sheet.Sheets[sn]);\n let newPropertiesArr = propertiesArr;\n json.forEach((item: any, index: number) => {\n newPropertiesArr.push({\n index,\n item,\n });\n });\n setPropertiesArr(newPropertiesArr);\n setJsonUploaded(newPropertiesArr.length);\n } else if (file.name.slice(-5) === '.json') {\n const reader = new FileReader();\n reader.readAsText(file);\n reader.onload = function () {\n const newData = JSON.parse((this as any).result);\n let newPropertiesArr = propertiesArr;\n if (newData.length) {\n newData.forEach((item: any, index: number) => {\n newPropertiesArr.push({\n index,\n item,\n });\n });\n } else {\n newPropertiesArr.push({\n index: file.name.slice(0, file.name.indexOf('.')),\n item: newData,\n });\n }\n setPropertiesArr(newPropertiesArr);\n setJsonUploaded(newPropertiesArr.length);\n };\n }\n return false;\n }}\n >\n \n \n
\n\n
\n
Loop Times
\n
\n setLoopTimes(e as number)} defaultValue={1} />\n
\n\n
\n \n Mint\n \n
\n
\n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(BatchMintBBox);\n","\n\nimport { Actor, Agent } from '@dfinity/agent';\nimport { Principal } from '@dfinity/principal';\nimport { createActor } from '../utils/actor';\nimport { YukuBusinessAgent } from '../utils/agent';\nimport { idlFactory as artistIDL } from './candid/artist.did';\nconst YUKU_BACKEND=process.env.NODE_ENV === 'production'?'https://api.yuku.app':'https://test-api.yuku.app'\nexport const createYukuBusinessActor = (agent: YukuBusinessAgent) => async (canisterId: string) => {\n const actor = await createActor(canisterId, artistIDL, agent);\n return actor as Actor;\n};\n\nconst user_id = process.env.NODE_ENV === 'production' ? '5018240807766087' : '193081079499339';\nconst user_token =\n process.env.NODE_ENV === 'production'\n ? 'VNw7vMfO443N3VKE4kFoGALI1HAxvM0J'\n : 'jMYYXvEOJznvlIYjiBcJl8cAPVVt86AN';\nexport const uploadFileWeb3Storage = async ({ file }: { file: any }) => {\n let formData = new FormData();\n formData.append('content_type', file.type);\n formData.append('file_name', file.name);\n formData.append('memo', 'test');\n formData.append('metadata', 'test');\n formData.append('service_type', 'Web3Storage');\n formData.append('file', file);\n const r = await fetch(`${YUKU_BACKEND}/system/upload_file/user/${user_id}/upload_file`, {\n method: 'POST',\n headers: {\n 'X-Token': user_token,\n },\n body: formData,\n });\n const json = await r.json()\n if (json.code) {\n throw Error('upload filed'+JSON.stringify(json.message))\n }\n return (json as any).data.url;\n}\n \n","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, Divider, Input, InputNumber, message, Modal, Select, Upload } from 'antd';\nimport { RcFile } from 'antd/lib/upload';\nimport * as XLSX from 'xlsx';\nimport { UploadOutlined } from '@ant-design/icons';\nimport { SyncOutlined } from '@ant-design/icons';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport pLimit from 'p-limit';\nimport {\n createErc721Actor,\n MyCollection,\n queryMyCollections,\n} from '../../service';\nimport { str2ab } from '../../utils/buffer';\nimport './index.less';\nimport React from 'react';\nimport {uploadFileWeb3Storage} from '../../service/upload'\nconst limit = pLimit(20);\n\ntype fileComb = {\n index: string;\n item: any;\n thumb?: string;\n};\n\nconst BatchMintTest: FC = (props: any) => {\n const { dispatch } = props;\n const { shikuActor, whitelist, agentType, agent } = props.use_agent;\n\n const { Option } = Select;\n\n const [initialing, setInitialing] = useState(false);\n const [myCollectionIds, setMyCollections] = useState([]);\n const [collectionInfo, setCollectionInfo] = useState({});\n const [uploadQueue, setUploadQueue] = useState([]);\n const [uploadLoaing, setUploadLoading] = useState(false);\n const [resumePoint, setResumePoint] = useState(0);\n const [netGate, setNetGet] = useState('w3s');\n const [imageUploaded, setImageUploaded] = useState(0);\n const [publicUrlArr, setPublicUrlArr] = useState([]);\n const [resumePointThumb, setResumePointThumb] = useState(0);\n const [start, setStart] = useState(0);\n const [amount, setAmount] = useState(0);\n const [thumbTypes, setThumbType] = useState('image');\n const [mimeType, setMimeType] = useState('image');\n const [submitLoading, setSubmitLoading] = useState(false);\n const [jsonUploaded, setJsonUploaded] = useState(0);\n const [propertiesArr, setPropertiesArr] = useState([]);\n const [loopTimes, setLoopTimes] = useState(1);\n const [toPrincipalID, setToPrincipalID] = useState('');\n const [originSrcList, setOriginSrcList] = useState([])\n const [thumbSrcList, setThumbSrcList] = useState([])\n const handleSelect = async (c: any) => {\n if (initialing === true) {\n return;\n }\n \n let info = JSON.parse(c);\n const collectionActor = await createErc721Actor(agent)(info.canisterId);\n console.debug(\"🚀 ~ collectionInfo:\", collectionInfo)\n //@ts-ignore\n let res = await collectionActor.supply('');\n let start = Number(res.ok);\n setStart(start);\n setCollectionInfo(info);\n };\n\n const getCollection = async () => {\n setInitialing(true);\n const collections = await queryMyCollections(shikuActor)();\n if (collections.length === 0) {\n message.warn('用户尚未创建collection');\n } else {\n setMyCollections(collections);\n }\n setInitialing(false);\n };\n\n const uploadUrl = async (originalUrl: any, uploadType: any) => {\n for (const i of uploadType) {\n if (originalUrl[0].name.indexOf(i) !== -1) {\n setMimeType(i)\n }\n }\n for (let i = resumePoint; i < originalUrl.length; i++) {\n try {\n let res = await uploadFileWeb3Storage({file:originalUrl[i]});\n setOriginSrcList(p=>[...p,res])\n setImageUploaded(p=>p+1)\n } catch (error) {\n console.log(collectionInfo.bucketId, error);\n message.error('Check the log and cycles blance of your bucket');\n setResumePoint(i);\n setUploadLoading(false);\n return;\n } \n }\n \n };\n\n const uploadThumb = async (thumbUrlArr: any, uploadType: any) => {\n for (const i of uploadType) {\n console.debug(\"🚀 ~ uploadThumb ~ i:\", i)\n if (thumbUrlArr[0].name.indexOf(i) !== -1) {\n setThumbType(i)\n }\n }\n for (let i = resumePointThumb; i < thumbUrlArr.length; i++) {\n try {\n let res = await uploadFileWeb3Storage({ file: thumbUrlArr[i] });\n setThumbSrcList(p=>[...p,res])\n console.log(thumbUrlArr[i]);\n setImageUploaded(p=>p+1)\n } catch (error) {\n console.log(collectionInfo.bucketId, error);\n message.error('Check the log and cycles blance of your bucket');\n setResumePointThumb(i);\n setUploadLoading(false);\n return;\n }\n }\n };\n\n const handleUpload = async () => {\n if (!collectionInfo.name) {\n message.error('Choose a collection first');\n return;\n }\n setUploadLoading(true);\n setImageUploaded(0)\n let thumbUrlArr: any = [];\n let originalUrl: any = [];\n let uploadType = ['mp4', 'glb'];\n //分成两个队列缩略图和原图\n for (let i = resumePoint; i < uploadQueue.length; i++) {\n let fileName = uploadQueue[i].name;\n if (fileName.indexOf('_original') != -1) {\n originalUrl.push(uploadQueue[i]);\n } else {\n thumbUrlArr.push(uploadQueue[i]);\n }\n }\n\n let tasks: any = [];\n if (originalUrl.length != 0) {\n tasks.push(limit(() => uploadUrl(originalUrl, uploadType)));\n }\n\n if (thumbUrlArr.length != 0) {\n tasks.push(limit(() => uploadThumb(thumbUrlArr,uploadType)));\n }\n const res= await Promise.all(tasks);\n setResumePoint(0);\n setUploadLoading(false);\n };\n\n const clearList = async () => {\n let uploadQueue: any = [];\n setUploadQueue(uploadQueue);\n };\n\n const handleLocalUrl = async () => {\n try {\n let start = 0;\n (async () => {\n const collectionActor = await createErc721Actor(agent)(collectionInfo.canisterId);\n console.debug(\"🚀 ~ collectionInfo:\", collectionInfo)\n //@ts-ignore\n let res = await collectionActor.supply('');\n start = Number(res.ok);\n setStart(start);\n let newPublicUrlArr: any = [];\n for (let i = 0; i < amount; i++) {\n newPublicUrlArr.push({\n index: i+start,\n item: originSrcList[i],\n thumb: thumbSrcList[i],\n });\n }\n setPublicUrlArr(newPublicUrlArr);\n })();\n } catch (error) {\n message.error('Check the log and cycles balance of your bucket');\n return;\n }\n };\n\n const handletoPrincipalID = (e: any) => {\n setToPrincipalID(e.target.value);\n };\n\n const handleRarity = async () => {\n try {\n const collectionActor: any = await createErc721Actor(agent)(collectionInfo.canisterId);\n await collectionActor.setScoreOfTokenId(7);\n } catch (error) {\n message.error('Please check the minter of the Canister or No Rarity'+JSON.stringify(error));\n }\n };\n\n const transferNetGate = (netGate: 'w3s' | 'dweb') => {\n setNetGet(netGate);\n return;\n };\n\n const handleBatchMint = (metadataArray: Uint8Array[]) => {\n try {\n const argsArr: any[] = metadataArray.map((item: Uint8Array) => {\n return {\n to: {\n principal: Principal.fromText(toPrincipalID),\n },\n metadata: [Array.from(item)],\n };\n });\n (async () => {\n const collectionActor = await createErc721Actor(agent)(collectionInfo.canisterId);\n for (let i = 0; i < argsArr.length; i += 1000) {\n //@ts-ignore\n let res = await collectionActor.batchMintNFT(\n argsArr.slice(i, i + 1000 >= argsArr.length ? argsArr.length : i + 1000),\n );\n console.log(res);\n }\n message.success('Batch Mint Success');\n setSubmitLoading(false);\n })();\n } catch (err) {\n console.error(err);\n message.error('Something went wrong');\n setSubmitLoading(false);\n }\n };\n useEffect(() => {\n getCollection()\n },[])\n const handleFinish = () => {\n setSubmitLoading(true);\n const metadataArray: Uint8Array[] = [];\n for (let i = 0; i < loopTimes; i++) {\n publicUrlArr.forEach((item: fileComb, index: number) => {\n let metadata: any = {};\n //属性\n if (propertiesArr[index]) {\n if ('attributes' in propertiesArr[index].item)\n metadata.attributes = propertiesArr[index].item.attributes;\n if ('properties' in propertiesArr[index].item) {\n metadata.attributes = propertiesArr[index].item.properties.map(\n (item: any) => {\n return {\n trait_type: item.name,\n value: item.value,\n };\n },\n );\n }\n if ('name' in propertiesArr[index].item) {\n metadata.name = propertiesArr[index].item.name;\n }\n if ('description' in propertiesArr[index].item) {\n metadata.description = propertiesArr[index].item.description;\n }\n }\n //媒体类型\n metadata.mimeType = mimeType;\n if (mimeType == '3dmodel') {\n metadata.environmentImageThree =\n 'https://yumi-frontend-assets.s3.ap-east-1.amazonaws.com/yumi/components/1658988744307_warehouse.hdr';\n }\n //名\n metadata.url = item.item;\n if ('thumb' in item) metadata.thumb = item.thumb;\n // if(collectionType === 'bbextMint'){\n // metadata.isopen = false;\n // metadata.name = collectionInfo.name\n // }\n metadataArray.push(str2ab(JSON.stringify(metadata)));\n });\n }\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist, collectionInfo.canisterId],\n type: 'add',\n },\n }).then(() => {\n handleBatchMint(metadataArray);\n // handleRarity();\n });\n };\n\n return (\n \n
\n
\n Batch Mint NFT\n
\n\n
\n
Collection
\n (\n <>\n {menu}\n
\n  Refresh your collection\n
\n \n )}\n >\n {myCollectionIds.map((c) => (\n \n ))}\n \n
\n\n
\n {/*
NetGate: {netGate}
\n {\n transferNetGate('w3s');\n }}\n >\n w3link\n \n {\n transferNetGate('dweb');\n }}\n >\n dweb\n */}\n
Assets
\n
\n Loaded: {uploadQueue.length} Uploaded: {imageUploaded}\n
\n {\n setUploadQueue([...uploadQueue, ...fileList]);\n return false;\n }}\n >\n \n \n \n {resumePoint == 0 ? 'Upload' : 'Resume'}\n \n\n \n
\n\n
\n
Mint Index
\n
\n Minted NFT:{start}, OriginMimeType:{mimeType}, ThumbMimeType:{thumbTypes}\n
\n {\n setAmount(Number(e.target.value));\n }}\n placeholder=\"Amount\"\n />\n\n \n {resumePointThumb == 0 ? 'GetLocalUrl' : 'Resume'}\n \n {JSON.stringify(publicUrlArr)}\n
\n\n
\n
Description JSON
\n
Uploaded: {jsonUploaded}
\n {\n if (file.name.slice(-5) === '.xlsx') {\n const buffer = await file.arrayBuffer();\n const sheet = XLSX.read(buffer, { type: 'buffer' });\n const sn = sheet.SheetNames[0];\n const json = XLSX.utils.sheet_to_json(sheet.Sheets[sn]);\n let newPropertiesArr = propertiesArr;\n json.forEach((item: any, index: number) => {\n newPropertiesArr.push({\n index,\n item,\n });\n });\n setPropertiesArr(newPropertiesArr);\n setJsonUploaded(newPropertiesArr.length);\n } else if (file.name.slice(-5) === '.json') {\n const reader = new FileReader();\n reader.readAsText(file);\n reader.onload = function () {\n const newData = JSON.parse((this as any).result);\n let newPropertiesArr = propertiesArr;\n if (newData.length) {\n newData.forEach((item: any, index: number) => {\n newPropertiesArr.push({\n index,\n item,\n });\n });\n } else {\n newPropertiesArr.push({\n index: file.name.slice(0, file.name.indexOf('.')),\n item: newData,\n });\n }\n setPropertiesArr(newPropertiesArr);\n setJsonUploaded(newPropertiesArr.length);\n };\n }\n return false;\n }}\n >\n \n \n
\n
\n
NFT Target Principal
\n\n \n
\n
\n
Loop Times
\n
\n setLoopTimes(e as number)} defaultValue={1} />\n
\n\n
\n \n Mint\n \n
\n
\n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(BatchMintTest);\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useDebounce(value) {\n var _React$useState = React.useState(value),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n cacheValue = _React$useState2[0],\n setCacheValue = _React$useState2[1];\n React.useEffect(function () {\n var timeout = setTimeout(function () {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return function () {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport collapseMotion from '../_util/motion';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nvar EMPTY_LIST = [];\nfunction toErrorEntity(error, errorStatus, prefix) {\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : \"\".concat(prefix, \"-\").concat(index),\n error: error,\n errorStatus: errorStatus\n };\n}\nexport default function ErrorList(_ref) {\n var help = _ref.help,\n helpStatus = _ref.helpStatus,\n _ref$errors = _ref.errors,\n errors = _ref$errors === void 0 ? EMPTY_LIST : _ref$errors,\n _ref$warnings = _ref.warnings,\n warnings = _ref$warnings === void 0 ? EMPTY_LIST : _ref$warnings,\n rootClassName = _ref.className,\n fieldId = _ref.fieldId,\n onVisibleChanged = _ref.onVisibleChanged;\n var _React$useContext = React.useContext(FormItemPrefixContext),\n prefixCls = _React$useContext.prefixCls;\n var _React$useContext2 = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext2.getPrefixCls;\n var baseClassName = \"\".concat(prefixCls, \"-item-explain\");\n var rootPrefixCls = getPrefixCls();\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n var debounceErrors = useDebounce(errors);\n var debounceWarnings = useDebounce(warnings);\n var fullKeyList = React.useMemo(function () {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, helpStatus, 'help')];\n }\n return [].concat(_toConsumableArray(debounceErrors.map(function (error, index) {\n return toErrorEntity(error, 'error', 'error', index);\n })), _toConsumableArray(debounceWarnings.map(function (warning, index) {\n return toErrorEntity(warning, 'warning', 'warning', index);\n })));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n var helpProps = {};\n if (fieldId) {\n helpProps.id = \"\".concat(fieldId, \"_help\");\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: \"\".concat(rootPrefixCls, \"-show-help\"),\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, function (holderProps) {\n var holderClassName = holderProps.className,\n holderStyle = holderProps.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, helpProps, {\n className: classNames(baseClassName, holderClassName, rootClassName),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n keys: fullKeyList\n }, collapseMotion, {\n motionName: \"\".concat(rootPrefixCls, \"-show-help-item\"),\n component: false\n }), function (itemProps) {\n var key = itemProps.key,\n error = itemProps.error,\n errorStatus = itemProps.errorStatus,\n itemClassName = itemProps.className,\n itemStyle = itemProps.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, _defineProperty({}, \"\".concat(baseClassName, \"-\").concat(errorStatus), errorStatus)),\n style: itemStyle\n }, error);\n }));\n });\n}","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n// add support for visualViewport object currently implemented in chrome\ninterface visualViewport {\n height: number\n width: number\n}\n\ntype ScrollLogicalPosition = 'start' | 'center' | 'end' | 'nearest'\n// This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\ntype ScrollMode = 'always' | 'if-needed'\n// New option that skips auto-scrolling all nodes with overflow: hidden set\n// See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\ntype SkipOverflowHiddenElements = boolean\n\ninterface Options {\n block?: ScrollLogicalPosition\n inline?: ScrollLogicalPosition\n scrollMode?: ScrollMode\n boundary?: CustomScrollBoundary\n skipOverflowHiddenElements?: SkipOverflowHiddenElements\n}\n\n// Custom behavior, not in any spec\ntype CustomScrollBoundaryCallback = (parent: Element) => boolean\ntype CustomScrollBoundary = Element | CustomScrollBoundaryCallback | null\ninterface CustomScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nfunction isElement(el: any): el is Element {\n return typeof el === 'object' && el != null && el.nodeType === 1\n}\n\nfunction canOverflow(\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nfunction getFrameElement(el: Element) {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nfunction isHiddenByFrame(el: Element): boolean {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nfunction isScrollable(el: Element, skipOverflowHiddenElements?: boolean) {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nfunction alignNearest(\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nfunction getParentElement(element: Node): Element | null {\n const parent = element.parentElement\n if (parent == null) {\n return (element.getRootNode() as ShadowRoot).host || null\n }\n return parent\n}\n\nexport default (target: Element, options: Options): CustomScrollAction[] => {\n //TODO: remove this hack when microbundle will support typescript >= 4.0\n const windowWithViewport = window as unknown as Window & {\n visualViewport: visualViewport\n }\n\n const { scrollMode, block, inline, boundary, skipOverflowHiddenElements } =\n options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = getParentElement(cursor)\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.width\n : innerWidth\n const viewportHeight = windowWithViewport.visualViewport\n ? windowWithViewport.visualViewport.height\n : innerHeight\n\n // Newer browsers supports scroll[X|Y], page[X|Y]Offset is\n const viewportX = window.scrollX || pageXOffset\n const viewportY = window.scrollY || pageYOffset\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: CustomScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const { height, width, top, right, bottom, left } =\n frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n const scaleX =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth === 0\n ? 0\n : width / (frame as HTMLElement).offsetWidth\n : 0\n const scaleY =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight === 0\n ? 0\n : height / (frame as HTMLElement).offsetHeight\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n viewportY,\n viewportY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n viewportY + targetBlock,\n viewportY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n viewportX,\n viewportX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n viewportX + targetInline,\n viewportX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + viewportY)\n inlineScroll = Math.max(0, inlineScroll + viewportX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll / scaleY,\n frame.scrollHeight - height / scaleY + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll / scaleX,\n frame.scrollWidth - width / scaleX + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import compute from 'compute-scroll-into-view';\nfunction isOptionsObject(options) {\n return options === Object(options) && Object.keys(options).length !== 0;\n}\nfunction defaultBehavior(actions, behavior) {\n if (behavior === void 0) {\n behavior = 'auto';\n }\n var canSmoothScroll = ('scrollBehavior' in document.body.style);\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n if (el.scroll && canSmoothScroll) {\n el.scroll({\n top: top,\n left: left,\n behavior: behavior\n });\n } else {\n el.scrollTop = top;\n el.scrollLeft = left;\n }\n });\n}\nfunction getOptions(options) {\n if (options === false) {\n return {\n block: 'end',\n inline: 'nearest'\n };\n }\n if (isOptionsObject(options)) {\n return options;\n }\n return {\n block: 'start',\n inline: 'nearest'\n };\n}\nfunction scrollIntoView(target, options) {\n var isTargetAttached = target.isConnected || target.ownerDocument.documentElement.contains(target);\n if (isOptionsObject(options) && typeof options.behavior === 'function') {\n return options.behavior(isTargetAttached ? compute(target, options) : []);\n }\n if (!isTargetAttached) {\n return;\n }\n var computeOptions = getOptions(options);\n return defaultBehavior(compute(target, computeOptions), computeOptions.behavior);\n}\nexport default scrollIntoView;","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nvar formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nvar defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) return undefined;\n var mergedId = namePath.join('_');\n if (formName) {\n return \"\".concat(formName, \"_\").concat(mergedId);\n }\n var isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? \"\".concat(defaultItemNamePrefixCls, \"_\").concat(mergedId) : mergedId;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useForm as useRcForm } from 'rc-field-form';\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n var namePath = toArray(name);\n return namePath.join('_');\n}\nexport default function useForm(form) {\n var _useRcForm = useRcForm(),\n _useRcForm2 = _slicedToArray(_useRcForm, 1),\n rcForm = _useRcForm2[0];\n var itemsRef = React.useRef({});\n var wrapForm = React.useMemo(function () {\n return form !== null && form !== void 0 ? form : _extends(_extends({}, rcForm), {\n __INTERNAL__: {\n itemRef: function itemRef(name) {\n return function (node) {\n var namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n };\n }\n },\n scrollToField: function scrollToField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var namePath = toArray(name);\n var fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n var node = fieldId ? document.getElementById(fieldId) : null;\n if (node) {\n scrollIntoView(node, _extends({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: function getFieldInstance(name) {\n var namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n });\n }, [form, rcForm]);\n return [wrapForm];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport SizeContext, { SizeContextProvider } from '../config-provider/SizeContext';\nimport { FormContext, FormProvider } from './context';\nimport ValidateMessagesContext from './validateMessagesContext';\nimport useForm from './hooks/useForm';\nvar InternalForm = function InternalForm(props, ref) {\n var contextSize = React.useContext(SizeContext);\n var contextDisabled = React.useContext(DisabledContext);\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction,\n contextForm = _React$useContext.form;\n var customizePrefixCls = props.prefixCls,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n _props$size = props.size,\n size = _props$size === void 0 ? contextSize : _props$size,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? contextDisabled : _props$disabled,\n form = props.form,\n colon = props.colon,\n labelAlign = props.labelAlign,\n labelWrap = props.labelWrap,\n labelCol = props.labelCol,\n wrapperCol = props.wrapperCol,\n hideRequiredMark = props.hideRequiredMark,\n _props$layout = props.layout,\n layout = _props$layout === void 0 ? 'horizontal' : _props$layout,\n scrollToFirstError = props.scrollToFirstError,\n requiredMark = props.requiredMark,\n onFinishFailed = props.onFinishFailed,\n name = props.name,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\"]);\n var contextValidateMessages = React.useContext(ValidateMessagesContext);\n var mergedRequiredMark = useMemo(function () {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n var mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var formClassName = classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(layout), true), \"\".concat(prefixCls, \"-hide-required-mark\"), mergedRequiredMark === false), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-\").concat(size), size), className);\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n wrapForm = _useForm2[0];\n var __INTERNAL__ = wrapForm.__INTERNAL__;\n __INTERNAL__.name = name;\n var formContextValue = useMemo(function () {\n return {\n name: name,\n labelAlign: labelAlign,\n labelCol: labelCol,\n labelWrap: labelWrap,\n wrapperCol: wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm\n };\n }, [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm]);\n React.useImperativeHandle(ref, function () {\n return wrapForm;\n });\n var onInternalFinishFailed = function onInternalFinishFailed(errorInfo) {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n var defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (scrollToFirstError && errorInfo.errorFields.length) {\n if (_typeof(scrollToFirstError) === 'object') {\n defaultScrollToFirstError = scrollToFirstError;\n }\n wrapForm.scrollToField(errorInfo.errorFields[0].name, defaultScrollToFirstError);\n }\n };\n return /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(FormProvider, _extends({}, {\n // This is not list in API, we pass with spread\n validateMessages: contextValidateMessages\n }), /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, _extends({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n className: formClassName\n }))))));\n};\nvar Form = /*#__PURE__*/React.forwardRef(InternalForm);\nexport { useForm, List, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { FormItemInputContext } from '../context';\nimport warning from '../../_util/warning';\nvar useFormItemStatus = function useFormItemStatus() {\n var _useContext = useContext(FormItemInputContext),\n status = _useContext.status;\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'Form.Item', \"Form.Item.useStatus should be used under Form.Item component. For more information: \".concat(window.location.protocol, \"//\").concat(window.location.host, \"/components/form-cn/#Form.Item.useStatus\")) : void 0;\n return {\n status: status\n };\n};\nexport default useFormItemStatus;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\nQuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (_typeof(tooltip) === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nvar FormItemLabel = function FormItemLabel(_ref) {\n var prefixCls = _ref.prefixCls,\n label = _ref.label,\n htmlFor = _ref.htmlFor,\n labelCol = _ref.labelCol,\n labelAlign = _ref.labelAlign,\n colon = _ref.colon,\n required = _ref.required,\n requiredMark = _ref.requiredMark,\n tooltip = _ref.tooltip;\n var _useLocaleReceiver = useLocaleReceiver('Form'),\n _useLocaleReceiver2 = _slicedToArray(_useLocaleReceiver, 1),\n formLocale = _useLocaleReceiver2[0];\n if (!label) return null;\n return /*#__PURE__*/React.createElement(FormContext.Consumer, {\n key: \"label\"\n }, function (_ref2) {\n var vertical = _ref2.vertical,\n contextLabelAlign = _ref2.labelAlign,\n contextLabelCol = _ref2.labelCol,\n labelWrap = _ref2.labelWrap,\n contextColon = _ref2.colon;\n var _a;\n var mergedLabelCol = labelCol || contextLabelCol || {};\n var mergedLabelAlign = labelAlign || contextLabelAlign;\n var labelClsBasic = \"\".concat(prefixCls, \"-item-label\");\n var labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && \"\".concat(labelClsBasic, \"-left\"), mergedLabelCol.className, _defineProperty({}, \"\".concat(labelClsBasic, \"-wrap\"), !!labelWrap));\n var labelChildren = label;\n // Keep label is original where there should have no colon\n var computedColon = colon === true || contextColon !== false && colon !== false;\n var haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n var tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n var _tooltipProps$icon = tooltipProps.icon,\n icon = _tooltipProps$icon === void 0 ? /*#__PURE__*/React.createElement(QuestionCircleOutlined, null) : _tooltipProps$icon,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n var tooltipNode = /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: \"\".concat(prefixCls, \"-item-tooltip\"),\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n // Add required mark if optional\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-item-optional\"),\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n var labelClassName = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-item-required\"), required), \"\".concat(prefixCls, \"-item-required-mark-optional\"), requiredMark === 'optional'), \"\".concat(prefixCls, \"-item-no-colon\"), !computedColon));\n return /*#__PURE__*/React.createElement(Col, _extends({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n });\n};\nexport default FormItemLabel;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nvar FormItemInput = function FormItemInput(props) {\n var prefixCls = props.prefixCls,\n status = props.status,\n wrapperCol = props.wrapperCol,\n children = props.children,\n errors = props.errors,\n warnings = props.warnings,\n formItemRender = props._internalItemRender,\n extra = props.extra,\n help = props.help,\n fieldId = props.fieldId,\n marginBottom = props.marginBottom,\n onErrorVisibleChanged = props.onErrorVisibleChanged;\n var baseClassName = \"\".concat(prefixCls, \"-item\");\n var formContext = React.useContext(FormContext);\n var mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n var className = classNames(\"\".concat(baseClassName, \"-control\"), mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n var subFormContext = React.useMemo(function () {\n return _extends({}, formContext);\n }, [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n var inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"-control-input-content\")\n }, children));\n var formItemContext = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n status: status\n };\n }, [prefixCls, status]);\n var errorListDom = marginBottom !== null || errors.length || warnings.length ? ( /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: \"\".concat(baseClassName, \"-explain-connected\"),\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n }))) : null;\n var extraProps = {};\n if (fieldId) {\n extraProps.id = \"\".concat(fieldId, \"_extra\");\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n var extraDom = extra ? ( /*#__PURE__*/React.createElement(\"div\", _extends({}, extraProps, {\n className: \"\".concat(baseClassName, \"-extra\")\n }), extra)) : null;\n var dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : ( /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, _extends({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\nexport default FormItemInput;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport omit from \"rc-util/es/omit\";\nimport { Row } from '../../grid';\nimport FormItemLabel from '../FormItemLabel';\nimport FormItemInput from '../FormItemInput';\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context';\nimport useDebounce from '../hooks/useDebounce';\nvar iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function ItemHolder(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n help = props.help,\n errors = props.errors,\n warnings = props.warnings,\n validateStatus = props.validateStatus,\n meta = props.meta,\n hasFeedback = props.hasFeedback,\n hidden = props.hidden,\n children = props.children,\n fieldId = props.fieldId,\n isRequired = props.isRequired,\n onSubItemMetaChange = props.onSubItemMetaChange,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"isRequired\", \"onSubItemMetaChange\"]);\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n var _React$useContext = React.useContext(FormContext),\n requiredMark = _React$useContext.requiredMark;\n // ======================== Margin ========================\n var itemRef = React.useRef(null);\n var debounceErrors = useDebounce(errors);\n var debounceWarnings = useDebounce(warnings);\n var hasHelp = help !== undefined && help !== null;\n var hasError = !!(hasHelp || errors.length || warnings.length);\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n marginBottom = _React$useState2[0],\n setMarginBottom = _React$useState2[1];\n useLayoutEffect(function () {\n if (hasError && itemRef.current) {\n var itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError]);\n var onErrorVisibleChanged = function onErrorVisibleChanged(nextVisible) {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n var mergedValidateStatus = '';\n if (validateStatus !== undefined) {\n mergedValidateStatus = validateStatus;\n } else if (meta.validating) {\n mergedValidateStatus = 'validating';\n } else if (debounceErrors.length) {\n mergedValidateStatus = 'error';\n } else if (debounceWarnings.length) {\n mergedValidateStatus = 'warning';\n } else if (meta.touched) {\n mergedValidateStatus = 'success';\n }\n var formItemStatusContext = React.useMemo(function () {\n var feedbackIcon;\n if (hasFeedback) {\n var IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = IconNode ? ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-feedback-icon\"), \"\".concat(itemPrefixCls, \"-feedback-icon-\").concat(mergedValidateStatus))\n }, /*#__PURE__*/React.createElement(IconNode, null))) : null;\n }\n return {\n status: mergedValidateStatus,\n hasFeedback: hasFeedback,\n feedbackIcon: feedbackIcon,\n isFormItemInput: true\n };\n }, [mergedValidateStatus, hasFeedback]);\n // ======================== Render ========================\n var itemClassName = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, itemPrefixCls, true), \"\".concat(itemPrefixCls, \"-with-help\"), hasHelp || debounceErrors.length || debounceWarnings.length), \"\".concat(className), !!className), \"\".concat(itemPrefixCls, \"-has-feedback\"), mergedValidateStatus && hasFeedback), \"\".concat(itemPrefixCls, \"-has-success\"), mergedValidateStatus === 'success'), \"\".concat(itemPrefixCls, \"-has-warning\"), mergedValidateStatus === 'warning'), \"\".concat(itemPrefixCls, \"-has-error\"), mergedValidateStatus === 'error'), \"\".concat(itemPrefixCls, \"-is-validating\"), mergedValidateStatus === 'validating'), \"\".concat(itemPrefixCls, \"-hidden\"), hidden);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(itemClassName),\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, _extends({\n className: \"\".concat(itemPrefixCls, \"-row\")\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'required', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol'])), /*#__PURE__*/React.createElement(FormItemLabel, _extends({\n htmlFor: fieldId,\n required: isRequired,\n requiredMark: requiredMark\n }, props, {\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, _extends({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children)))), !!marginBottom && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(itemPrefixCls, \"-margin-offset\"),\n style: {\n marginBottom: -marginBottom\n }\n })));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport { tuple } from '../../_util/type';\nimport warning from '../../_util/warning';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nvar NAME_SPLIT = '__SPLIT__';\nvar ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');\nvar MemoInput = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (prev, next) {\n return prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every(function (value, index) {\n return value === next.childProps[index];\n });\n});\nfunction hasValidName(name) {\n if (name === null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', '`null` is passed as `name` property') : void 0;\n }\n return !(name === undefined || name === null);\n}\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n validated: false,\n name: []\n };\n}\nfunction InternalFormItem(props) {\n var name = props.name,\n noStyle = props.noStyle,\n dependencies = props.dependencies,\n customizePrefixCls = props.prefixCls,\n shouldUpdate = props.shouldUpdate,\n rules = props.rules,\n children = props.children,\n required = props.required,\n label = props.label,\n messageVariables = props.messageVariables,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? 'onChange' : _props$trigger,\n validateTrigger = props.validateTrigger,\n hidden = props.hidden;\n var _useContext = useContext(ConfigContext),\n getPrefixCls = _useContext.getPrefixCls;\n var _useContext2 = useContext(FormContext),\n formName = _useContext2.name;\n var isRenderProps = typeof children === 'function';\n var notifyParentMetaChange = useContext(NoStyleItemContext);\n var _useContext3 = useContext(FieldContext),\n contextValidateTrigger = _useContext3.validateTrigger;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n var hasName = hasValidName(name);\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n // ========================= MISC =========================\n // Get `noStyle` required info\n var listContext = React.useContext(ListContext);\n var fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n var _useFrameState = useFrameState({}),\n _useFrameState2 = _slicedToArray(_useFrameState, 2),\n subFieldErrors = _useFrameState2[0],\n setSubFieldErrors = _useFrameState2[1];\n // >>>>> Current field errors\n var _useState = useState(function () {\n return genEmptyMeta();\n }),\n _useState2 = _slicedToArray(_useState, 2),\n meta = _useState2[0],\n setMeta = _useState2[1];\n var onMetaChange = function onMetaChange(nextMeta) {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n var keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && notifyParentMetaChange) {\n var namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n var _keyInfo = _slicedToArray(keyInfo, 2),\n fieldKey = _keyInfo[0],\n restPath = _keyInfo[1];\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n var onSubItemMetaChange = function onSubItemMetaChange(subMeta, uniqueKeys) {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(function (prevSubFieldErrors) {\n var clone = _extends({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n var mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n var mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n var _React$useMemo = React.useMemo(function () {\n var errorList = _toConsumableArray(meta.errors);\n var warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(function (subFieldError) {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedErrors = _React$useMemo2[0],\n mergedWarnings = _React$useMemo2[1];\n // ===================== Children Ref =====================\n var getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return baseChildren;\n }\n return /*#__PURE__*/React.createElement(ItemHolder, _extends({\n key: \"row\"\n }, props, {\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return renderLayout(children);\n }\n var variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = _extends(_extends({}, variables), messageVariables);\n }\n // >>>>> With Field\n return /*#__PURE__*/React.createElement(Field, _extends({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), function (control, renderMeta, context) {\n var mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n var fieldId = getFieldId(mergedName, formName);\n var isRequired = required !== undefined ? required : !!(rules && rules.some(function (rule) {\n if (rule && _typeof(rule) === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n var ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;\n }\n return false;\n }));\n // ======================= Children =======================\n var mergedControl = _extends({}, control);\n var childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(children) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = children;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (isValidElement(children)) {\n process.env.NODE_ENV !== \"production\" ? warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n var childProps = _extends(_extends({}, children.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n var describedbyArr = [];\n if (props.help || mergedErrors.length > 0) {\n describedbyArr.push(\"\".concat(fieldId, \"_help\"));\n }\n if (props.extra) {\n describedbyArr.push(\"\".concat(fieldId, \"_extra\"));\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children);\n }\n // We should keep user origin event handler\n var triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(function (eventName) {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = children.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n var watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: children,\n childProps: watchingChildProps\n }, cloneElement(children, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = children(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = children;\n }\n return renderLayout(childNode, fieldId, isRequired);\n });\n}\nvar FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nexport default function useFrameState(defaultValue) {\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var frameRef = useRef(null);\n var batchRef = useRef([]);\n var destroyRef = useRef(false);\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(function () {\n frameRef.current = null;\n setValue(function (prevValue) {\n var current = prevValue;\n batchRef.current.forEach(function (func) {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n var _React$useContext = React.useContext(FormContext),\n itemRef = _React$useContext.itemRef;\n var cacheRef = React.useRef({});\n function getRef(name, children) {\n var childrenRef = children && _typeof(children) === 'object' && children.ref;\n var nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { List } from 'rc-field-form';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport { FormItemPrefixContext } from './context';\nvar FormList = function FormList(_a) {\n var customizePrefixCls = _a.prefixCls,\n children = _a.children,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n process.env.NODE_ENV !== \"production\" ? warning(!!props.name, 'Form.List', 'Miss `name` prop.') : void 0;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n var prefixCls = getPrefixCls('form', customizePrefixCls);\n var contextValue = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n status: 'error'\n };\n }, [prefixCls]);\n return /*#__PURE__*/React.createElement(List, _extends({}, props), function (fields, operation, meta) {\n return /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(function (field) {\n return _extends(_extends({}, field), {\n fieldKey: field.key\n });\n }), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n }));\n });\n};\nexport default FormList;","import warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nvar Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = function () {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n var _useContext = useContext(FormContext),\n form = _useContext.form;\n return form;\n}","import { useRef, useState } from 'react';\nimport { Button, Card, Form, Input, message } from 'antd';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport { createErc721Actor } from '../../service';\nimport { principalToAccountIdentifier } from '../../utils/principal';\nimport { tokenIdentifier } from '../../utils/token';\nimport './index.less';\n\nconst BatchTransferNFT = (props: any) => {\n const { dispatch } = props;\n\n const { agentType, whitelist, agent, principal } = props.use_agent;\n\n const [wrongAddress, setWrongAddress] = useState('');\n\n const layout = {\n labelCol: { span: 4 },\n wrapperCol: { span: 20 },\n };\n const tailLayout = {\n wrapperCol: { offset: 12, span: 12 },\n };\n\n const [loading, setLoading] = useState(false);\n const formRef = useRef(null);\n const batchTransfer = async (values: any) => {\n console.log(values);\n const erc721Actor: any = await createErc721Actor(agent)(values.id);\n\n let tokens: string[] = [];\n for (let i = Number(values.tokenStart); i <= Number(values.tokenEnd); i++) {\n tokens.push(tokenIdentifier(values.id, i));\n }\n console.log(tokens);\n const airdropList = (values.to || '').split(',');\n if (tokens.length !== airdropList.length) {\n message.error('NFT Amount not match');\n setLoading(false);\n return;\n }\n let wrong = '';\n const target = airdropList.map((airdropListItem: string) => {\n if (airdropListItem.length === 64 && /^[\\d\\w]+$/.test(airdropListItem))\n return airdropListItem;\n else if (airdropListItem.length === 0) return '';\n else {\n try {\n return principalToAccountIdentifier(airdropListItem, 0);\n } catch (err) {\n console.log(err);\n }\n }\n wrong = wrong + airdropListItem + ',';\n setWrongAddress(wrong);\n return principalToAccountIdentifier(principal, 0);\n });\n if (wrong.length > 0) {\n setLoading(false);\n message.error('wrong address detected');\n return;\n }\n const args: any[] = target.map((to: string, index: number) => {\n return {\n from: { principal: Principal.fromText(values.transferFrom || principal) },\n to: { address: to },\n token: tokens[index],\n notify: false,\n memo: [0],\n subaccount: [],\n amount: 1,\n };\n });\n\n let success: number = 0;\n const res = await erc721Actor.batchTransfer(args);\n res.forEach((result: any) => {\n if ('ok' in result) success += 1;\n });\n message.success(`Transfer successfully ${success}, failed ${args.length - success}`);\n setLoading(false);\n };\n const onFinish = async (values: any) => {\n setLoading(true);\n console.log(whitelist);\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist, values.id],\n type: 'add',\n },\n }).then((v: any) => {\n batchTransfer(values);\n });\n };\n return (\n \n

Batch Transfer NFT

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {wrongAddress.length > 0 ? (\n <>\n
Wrong Address
\n {wrongAddress}\n \n ) : null}\n Notice: The index start from 0\n
\n );\n};\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(BatchTransferNFT);\n","import { FC, useEffect, useState } from 'react';\nimport { Button, Card, Input, message, Select } from 'antd';\nimport { connect } from 'dva';\nimport { principalToAccountIdentifier } from '../../utils/principal';\nimport { decodeTokenId, tokenIdentifier } from '../../utils/token';\nimport './index.less';\n\nconst Converter: FC = (props: any) => {\n const supportType = [\n {\n name: 'Principal to address',\n method: (Principal: string) => principalToAccountIdentifier(Principal, 0),\n args: ['Principal'],\n },\n {\n name: 'Encode TokenId',\n method: (CanisterID: string, TokenIndex: number) =>\n tokenIdentifier(CanisterID, TokenIndex),\n args: ['CanisterID', 'TokenIndex'],\n },\n {\n name: 'Decode TokenId',\n method: (TokenID: string) => decodeTokenId(TokenID),\n args: ['TokenID'],\n },\n ];\n\n const { Option } = Select;\n\n const [currentMethod, setCurrentMethod] = useState(0);\n const [input, setInput] = useState([]);\n const [output, setOutput] = useState('');\n\n const handleSelect = (c: any) => {\n setCurrentMethod(c);\n setInput([]);\n };\n\n const handleInput = (e: any, index: number) => {\n let newArr = Array.from(input);\n newArr[index] = e.target.value;\n setInput(newArr);\n console.log(newArr);\n };\n\n const handleConverte = () => {\n //@ts-ignore\n setOutput(JSON.stringify(supportType[currentMethod].method(...input)));\n };\n\n return (\n \n
Some Useless Tools
\n\n
\n
Choose a Function
\n \n {supportType.map((item, index) => (\n \n ))}\n \n
\n {supportType[currentMethod].args.map((item: string, index: number) => {\n return (\n
\n handleInput(e, index)}\n style={{ width: '60%' }}\n value={input[index]}\n >\n
\n );\n })}\n\n \n\n
\n
OutPut
{output}\n
\n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(Converter);\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar Switch = React.forwardRef(function (_ref, ref) {\n var _classNames;\n\n var _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-switch' : _ref$prefixCls,\n className = _ref.className,\n checked = _ref.checked,\n defaultChecked = _ref.defaultChecked,\n disabled = _ref.disabled,\n loadingIcon = _ref.loadingIcon,\n checkedChildren = _ref.checkedChildren,\n unCheckedChildren = _ref.unCheckedChildren,\n onClick = _ref.onClick,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n restProps = _objectWithoutProperties(_ref, [\"prefixCls\", \"className\", \"checked\", \"defaultChecked\", \"disabled\", \"loadingIcon\", \"checkedChildren\", \"unCheckedChildren\", \"onClick\", \"onChange\", \"onKeyDown\"]);\n\n var _useMergedState = useMergedState(false, {\n value: checked,\n defaultValue: defaultChecked\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerChecked = _useMergedState2[0],\n setInnerChecked = _useMergedState2[1];\n\n function triggerChange(newChecked, event) {\n var mergedChecked = innerChecked;\n\n if (!disabled) {\n mergedChecked = newChecked;\n setInnerChecked(mergedChecked);\n onChange === null || onChange === void 0 ? void 0 : onChange(mergedChecked, event);\n }\n\n return mergedChecked;\n }\n\n function onInternalKeyDown(e) {\n if (e.which === KeyCode.LEFT) {\n triggerChange(false, e);\n } else if (e.which === KeyCode.RIGHT) {\n triggerChange(true, e);\n }\n\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n }\n\n function onInternalClick(e) {\n var ret = triggerChange(!innerChecked, e); // [Legacy] trigger onClick with value\n\n onClick === null || onClick === void 0 ? void 0 : onClick(ret, e);\n }\n\n var switchClassName = classNames(prefixCls, className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-checked\"), innerChecked), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames));\n return React.createElement(\"button\", Object.assign({}, restProps, {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": innerChecked,\n disabled: disabled,\n className: switchClassName,\n ref: ref,\n onKeyDown: onInternalKeyDown,\n onClick: onInternalClick\n }), loadingIcon, React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-inner\")\n }, innerChecked ? checkedChildren : unCheckedChildren));\n});\nSwitch.displayName = 'Switch';\nexport default Switch;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RcSwitch from 'rc-switch';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nvar Switch = /*#__PURE__*/React.forwardRef(function (_a, ref) {\n var customizePrefixCls = _a.prefixCls,\n customizeSize = _a.size,\n customDisabled = _a.disabled,\n loading = _a.loading,\n _a$className = _a.className,\n className = _a$className === void 0 ? '' : _a$className,\n props = __rest(_a, [\"prefixCls\", \"size\", \"disabled\", \"loading\", \"className\"]);\n process.env.NODE_ENV !== \"production\" ? warning('checked' in props || !('value' in props), 'Switch', '`value` is not a valid prop, do you mean `checked`?') : void 0;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var size = React.useContext(SizeContext);\n // ===================== Disabled =====================\n var disabled = React.useContext(DisabledContext);\n var mergedDisabled = (customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled) || loading;\n var prefixCls = getPrefixCls('switch', customizePrefixCls);\n var loadingIcon = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-handle\")\n }, loading && /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }));\n var classes = classNames(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-small\"), (customizeSize || size) === 'small'), \"\".concat(prefixCls, \"-loading\"), loading), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n return /*#__PURE__*/React.createElement(Wave, {\n insertExtraNode: true\n }, /*#__PURE__*/React.createElement(RcSwitch, _extends({}, props, {\n prefixCls: prefixCls,\n className: classes,\n disabled: mergedDisabled,\n ref: ref,\n loadingIcon: loadingIcon\n })));\n});\nSwitch.__ANT_SWITCH = true;\nif (process.env.NODE_ENV !== 'production') {\n Switch.displayName = 'Switch';\n}\nexport default Switch;","var DescriptionsItem = function DescriptionsItem(_ref) {\n var children = _ref.children;\n return children;\n};\nexport default DescriptionsItem;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nfunction notEmpty(val) {\n return val !== undefined && val !== null;\n}\nvar Cell = function Cell(_ref) {\n var itemPrefixCls = _ref.itemPrefixCls,\n component = _ref.component,\n span = _ref.span,\n className = _ref.className,\n style = _ref.style,\n labelStyle = _ref.labelStyle,\n contentStyle = _ref.contentStyle,\n bordered = _ref.bordered,\n label = _ref.label,\n content = _ref.content,\n colon = _ref.colon;\n var Component = component;\n if (bordered) {\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(_defineProperty(_defineProperty({}, \"\".concat(itemPrefixCls, \"-item-label\"), notEmpty(label)), \"\".concat(itemPrefixCls, \"-item-content\"), notEmpty(content)), className),\n style: style,\n colSpan: span\n }, notEmpty(label) && /*#__PURE__*/React.createElement(\"span\", {\n style: labelStyle\n }, label), notEmpty(content) && /*#__PURE__*/React.createElement(\"span\", {\n style: contentStyle\n }, content));\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: classNames(\"\".concat(itemPrefixCls, \"-item\"), className),\n style: style,\n colSpan: span\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(itemPrefixCls, \"-item-container\")\n }, (label || label === 0) && ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-item-label\"), _defineProperty({}, \"\".concat(itemPrefixCls, \"-item-no-colon\"), !colon)),\n style: labelStyle\n }, label)), (content || content === 0) && ( /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(itemPrefixCls, \"-item-content\")),\n style: contentStyle\n }, content))));\n};\nexport default Cell;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { DescriptionsContext } from '.';\nimport Cell from './Cell';\nfunction renderCells(items, _ref, _ref2) {\n var colon = _ref.colon,\n prefixCls = _ref.prefixCls,\n bordered = _ref.bordered;\n var component = _ref2.component,\n type = _ref2.type,\n showLabel = _ref2.showLabel,\n showContent = _ref2.showContent,\n rootLabelStyle = _ref2.labelStyle,\n rootContentStyle = _ref2.contentStyle;\n return items.map(function (_ref3, index) {\n var _ref3$props = _ref3.props,\n label = _ref3$props.label,\n children = _ref3$props.children,\n _ref3$props$prefixCls = _ref3$props.prefixCls,\n itemPrefixCls = _ref3$props$prefixCls === void 0 ? prefixCls : _ref3$props$prefixCls,\n className = _ref3$props.className,\n style = _ref3$props.style,\n labelStyle = _ref3$props.labelStyle,\n contentStyle = _ref3$props.contentStyle,\n _ref3$props$span = _ref3$props.span,\n span = _ref3$props$span === void 0 ? 1 : _ref3$props$span,\n key = _ref3.key;\n if (typeof component === 'string') {\n return /*#__PURE__*/React.createElement(Cell, {\n key: \"\".concat(type, \"-\").concat(key || index),\n className: className,\n style: style,\n labelStyle: _extends(_extends({}, rootLabelStyle), labelStyle),\n contentStyle: _extends(_extends({}, rootContentStyle), contentStyle),\n span: span,\n colon: colon,\n component: component,\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: showLabel ? label : null,\n content: showContent ? children : null\n });\n }\n return [/*#__PURE__*/React.createElement(Cell, {\n key: \"label-\".concat(key || index),\n className: className,\n style: _extends(_extends(_extends({}, rootLabelStyle), style), labelStyle),\n span: 1,\n colon: colon,\n component: component[0],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n label: label\n }), /*#__PURE__*/React.createElement(Cell, {\n key: \"content-\".concat(key || index),\n className: className,\n style: _extends(_extends(_extends({}, rootContentStyle), style), contentStyle),\n span: span * 2 - 1,\n component: component[1],\n itemPrefixCls: itemPrefixCls,\n bordered: bordered,\n content: children\n })];\n });\n}\nvar Row = function Row(props) {\n var descContext = React.useContext(DescriptionsContext);\n var prefixCls = props.prefixCls,\n vertical = props.vertical,\n row = props.row,\n index = props.index,\n bordered = props.bordered;\n if (vertical) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"tr\", {\n key: \"label-\".concat(index),\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: 'th',\n type: 'label',\n showLabel: true\n }, descContext))), /*#__PURE__*/React.createElement(\"tr\", {\n key: \"content-\".concat(index),\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: 'td',\n type: 'content',\n showContent: true\n }, descContext))));\n }\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: index,\n className: \"\".concat(prefixCls, \"-row\")\n }, renderCells(row, props, _extends({\n component: bordered ? ['th', 'td'] : 'td',\n type: 'item',\n showLabel: true,\n showContent: true\n }, descContext)));\n};\nexport default Row;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/no-array-index-key */\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { cloneElement } from '../_util/reactNode';\nimport ResponsiveObserve, { responsiveArray } from '../_util/responsiveObserve';\nimport warning from '../_util/warning';\nimport DescriptionsItem from './Item';\nimport Row from './Row';\nexport var DescriptionsContext = /*#__PURE__*/React.createContext({});\nvar DEFAULT_COLUMN_MAP = {\n xxl: 3,\n xl: 3,\n lg: 3,\n md: 3,\n sm: 2,\n xs: 1\n};\nfunction getColumn(column, screens) {\n if (typeof column === 'number') {\n return column;\n }\n if (_typeof(column) === 'object') {\n for (var i = 0; i < responsiveArray.length; i++) {\n var breakpoint = responsiveArray[i];\n if (screens[breakpoint] && column[breakpoint] !== undefined) {\n return column[breakpoint] || DEFAULT_COLUMN_MAP[breakpoint];\n }\n }\n }\n return 3;\n}\nfunction getFilledItem(node, span, rowRestCol) {\n var clone = node;\n if (span === undefined || span > rowRestCol) {\n clone = cloneElement(node, {\n span: rowRestCol\n });\n process.env.NODE_ENV !== \"production\" ? warning(span === undefined, 'Descriptions', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0;\n }\n return clone;\n}\nfunction getRows(children, column) {\n var childNodes = toArray(children).filter(function (n) {\n return n;\n });\n var rows = [];\n var tmpRow = [];\n var rowRestCol = column;\n childNodes.forEach(function (node, index) {\n var _a;\n var span = (_a = node.props) === null || _a === void 0 ? void 0 : _a.span;\n var mergedSpan = span || 1;\n // Additional handle last one\n if (index === childNodes.length - 1) {\n tmpRow.push(getFilledItem(node, span, rowRestCol));\n rows.push(tmpRow);\n return;\n }\n if (mergedSpan < rowRestCol) {\n rowRestCol -= mergedSpan;\n tmpRow.push(node);\n } else {\n tmpRow.push(getFilledItem(node, mergedSpan, rowRestCol));\n rows.push(tmpRow);\n rowRestCol = column;\n tmpRow = [];\n }\n });\n return rows;\n}\nfunction Descriptions(_ref) {\n var customizePrefixCls = _ref.prefixCls,\n title = _ref.title,\n extra = _ref.extra,\n _ref$column = _ref.column,\n column = _ref$column === void 0 ? DEFAULT_COLUMN_MAP : _ref$column,\n _ref$colon = _ref.colon,\n colon = _ref$colon === void 0 ? true : _ref$colon,\n bordered = _ref.bordered,\n layout = _ref.layout,\n children = _ref.children,\n className = _ref.className,\n style = _ref.style,\n size = _ref.size,\n labelStyle = _ref.labelStyle,\n contentStyle = _ref.contentStyle;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('descriptions', customizePrefixCls);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n screens = _React$useState2[0],\n setScreens = _React$useState2[1];\n var mergedColumn = getColumn(column, screens);\n // Responsive\n React.useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (newScreens) {\n if (_typeof(column) !== 'object') {\n return;\n }\n setScreens(newScreens);\n });\n return function () {\n ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n // Children\n var rows = getRows(children, mergedColumn);\n var contextValue = React.useMemo(function () {\n return {\n labelStyle: labelStyle,\n contentStyle: contentStyle\n };\n }, [labelStyle, contentStyle]);\n return /*#__PURE__*/React.createElement(DescriptionsContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(size), size && size !== 'default'), \"\".concat(prefixCls, \"-bordered\"), !!bordered), \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className),\n style: style\n }, (title || extra) && ( /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-header\")\n }, title && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-title\")\n }, title), extra && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra\")\n }, extra))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-view\")\n }, /*#__PURE__*/React.createElement(\"table\", null, /*#__PURE__*/React.createElement(\"tbody\", null, rows.map(function (row, index) {\n return /*#__PURE__*/React.createElement(Row, {\n key: index,\n index: index,\n colon: colon,\n prefixCls: prefixCls,\n vertical: layout === 'vertical',\n bordered: bordered,\n row: row\n });\n }))))));\n}\nDescriptions.Item = DescriptionsItem;\nexport default Descriptions;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n InfoCircleOutlined.displayName = 'InfoCircleOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n LoadingOutlined.displayName = 'LoadingOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PlusOutlined.displayName = 'PlusOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import { FC, useEffect, useState } from 'react';\nimport { Button, Upload } from 'antd';\nimport { LoadingOutlined, PlusCircleFilled, PlusOutlined } from '@ant-design/icons';\n\ninterface IFileUpload {\n isWide?: boolean;\n iniUrl?: string;\n onSuccess: (imageUrl: string) => void;\n butAdd?: boolean;\n tipText?: string;\n}\n\nconst FileUpload: FC = ({ isWide, onSuccess, iniUrl, butAdd, tipText }) => {\n const [classname, setClassname] = useState('avatar-uploader');\n const [imageUrl, setImageUrl] = useState(iniUrl);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n setImageUrl(iniUrl);\n }, [iniUrl]);\n const handleUpload = (file: any) => {\n // const name = file.uid + file.name;\n // setIsLoading(true);\n // upload(file, name, (progress:any) => console.log(((progress.loaded * 100) / progress.total) | 0))\n // .then((res:any) => {\n // // console.log(res);\n\n // setImageUrl(res.publicUrl);\n // onSuccess(res.publicUrl);\n // setClassname('avatar-uploader-wide');\n // })\n // .catch(() => {\n // // todo: handle error\n // })\n // .finally(() => {\n // setIsLoading(false);\n // });\n onSuccess(file);\n setImageUrl(window.URL.createObjectURL(file));\n };\n const removeUrl = (e: any) => {\n setImageUrl('');\n onSuccess('');\n e.stopPropagation();\n };\n const imageStyle = isWide\n ? {\n // height: 'calc(100% + 2px)',\n // border: '1px dotted #d9d9d9',\n // marginLeft: '-1px',\n }\n : {\n // width: '100%',\n maxWidth: '100%',\n };\n\n return (\n \n {imageUrl && !butAdd ? (\n \n X\n \n ) : null}\n\n {imageUrl ? (\n
\n {/* \"avatar\" */}\n {/*
\n ) : isLoading ? (\n \n ) : (\n
\n {!butAdd ?
: }\n
\n )}\n\n {/* {\n imageUrl?\n } */}\n {/* {\n imageUrl?\"avatar\":
\n
\n
\n } */}\n \n );\n};\n\nexport default FileUpload;\n","import { FC, useEffect, useState } from 'react';\nimport {\n Button,\n Card,\n DatePicker,\n Descriptions,\n Form,\n Input,\n InputNumber,\n message,\n Select,\n Switch,\n Tooltip,\n} from 'antd';\nimport { InfoCircleOutlined } from '@ant-design/icons';\nimport AWS from 'aws-sdk';\nimport { connect } from 'dva';\nimport { createCollection, isDev } from '../../service';\nimport Upload from './components/Upload';\nimport './index.less';\nimport {uploadFileWeb3Storage} from '../../service/upload'\nconst royalties_precision = 3;\nconst user_id = 442757685346880;\nconst user_token = 'CmZUgrOBpTkV1tWkQDPBxS8hEXwRccOM';\nconst CreateCollectionDetail: FC = (props: any) => {\n const { history, dispatch } = props;\n const { shikuActor, agent, agentType, whitelist } = props.use_agent;\n\n const [waiting, setWaiting] = useState(false);\n\n const { Option } = Select;\n const [form] = Form.useForm();\n\n const handleCreate = async (values: any) => {\n try {\n let logoUrl = values.logo? await uploadFileWeb3Storage({\n file: values.logo,\n }):'';\n console.debug(\"🚀 ~ handleCreate ~ logoUrl:\", logoUrl)\n let bannerUrl =values.banner? await uploadFileWeb3Storage({\n file: values.banner,\n }):'';\n console.debug(\"🚀 ~ handleCreate ~ bannerUrl:\", bannerUrl)\n let featuredUrl = values.featured? await uploadFileWeb3Storage({\n file: values.featured,\n }):'';\n const query = {\n ...values,\n name: values.name || '',\n logo: logoUrl || '',\n featured: featuredUrl || '',\n banner: bannerUrl || '',\n description: values.description || '',\n category: values.category || '',\n links: {\n discord: [values.discord ? fillLinks(discord, values.discord) : ''],\n instagram: [values.instagram ? fillLinks(instagram, values.instagram) : ''],\n medium: [values.medium ? fillLinks(medium, values.medium) : ''],\n telegram: [values.telegram ? fillLinks(telegram, values.telegram) : ''],\n twitter: [values.twitter ? fillLinks(twitter, values.twitter) : ''],\n yoursite: [values.yoursite ? fillLinks('', values.yoursite) : ''],\n },\n royalties: {rate:(Number(values.royalties) || 7)*10,precision:royalties_precision},\n releaseTime: Number(values.releaseTime) * 1000000,\n openTime: Number(values.openTime) * 1000000,\n isVisible: values.isVisible || false,\n standard: { ext: null },\n };\n const createCollRes = await createCollection(shikuActor)(query);\n if (createCollRes.success) {\n // let s3Client = new AWS.S3({\n // console.debug(\"🚀 ~ handleCreate ~ logoUrl:\", logoUrl)\n // accessKeyId: 'AKIARZZYRGO3WVXNVKGT',\n // secretAccessKey: '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',\n // region: 'ap-east-1',\n // });\n // s3Client.putObject(\n // {\n // Bucket: 'yumi-frontend-assets',\n // Key: 'yumi/canisterId2BuckId/' + createCollRes.payload + '.json',\n // Body: '[\"' + bucketId + '\"]',\n // },\n // (res) => console.log(res),\n // );\n message.success('success!');\n form.resetFields();\n history.push('/home');\n } else {\n message.error('failed!');\n console.log(createCollRes);\n }\n setWaiting(false);\n } catch (error) {\n message.error('Something went wrong, please check the consle log');\n console.error(error);\n setWaiting(false);\n }\n };\n\n const handleFinish = async (values: any) => {\n setWaiting(true);\n dispatch({\n type: 'use_agent/queryShikuActorEffect',\n payload: {\n agentType: agentType,\n whitelist: [...whitelist],\n type: 'add',\n },\n }).then(() => {\n handleCreate(values);\n });\n\n return;\n };\n\n const setField = (k: string, v: string) => {\n form.setFieldsValue({ [k]: v });\n };\n\n const fillLinks = (prefix: string, value: string) => {\n let newValue = value;\n if (value.indexOf('https://') !== -1) {\n newValue = value.slice(8, value.length);\n }\n console.log(newValue);\n if (newValue.indexOf(prefix) !== -1) {\n return newValue;\n }\n return prefix.concat(newValue);\n };\n\n const discord = 'discord.gg/';\n const twitter = 'twitter.com/';\n const instagram = 'instagram.com/';\n const medium = 'medium.com/';\n const telegram = 't.me/';\n\n return (\n \n
\n
\n Create Collection\n
\n \n \n \n \n \n {\n setField('logo', url);\n }}\n />\n \n \n {\n setField('featured', url);\n }}\n />\n \n \n {\n setField('banner', url);\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Links
\n \n }\n />\n \n \n }\n />\n \n \n }\n />\n \n \n }\n />\n \n \n }\n />\n \n \n }\n />\n \n \n \n \n \n \n Collect a fee when a user re-sells an item you originally created. This\n is deducted from the final sale price and paid monthly to a payout\n address of your choosing.\n \n \n
\n Percentage Fee \n \n \n \n \n from 0.00 to 99.99 can be entered.\n \n }\n color=\"#ffffff\"\n overlayStyle={{ float: 'left' }}\n >\n \n \n
\n \n \n
\n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(CreateCollectionDetail);\n","import { FC, useState } from 'react';\nimport { Button, Card, Input, message, Select } from 'antd';\nimport { Principal } from '@dfinity/principal';\nimport { connect } from 'dva';\nimport './index.less';\n\nconst DeleteCollection: FC = (props: any) => {\n const { Option } = Select;\n\n const { shikuActor, launchpadActor } = props.use_agent;\n\n const [collectionId, setCollectionId] = useState('');\n const [setting, setSetting] = useState(false);\n const [market, setMarket] = useState('market');\n\n const handleFinish = async () => {\n console.log(market);\n setSetting(true);\n let res: any = {};\n try {\n if (market === 'market') {\n const data = await shikuActor.getCollectionData(Principal.fromText(collectionId));\n res = await shikuActor.removeCollection(data[0].info.creator, collectionId);\n }\n if (market === 'launchpad') {\n const result = await launchpadActor.removeCollection(\n Principal.fromText(collectionId),\n );\n if (result) {\n res.ok = null;\n }\n }\n } catch (err) {\n console.log(err);\n }\n if ('ok' in res) {\n message.success('done');\n } else {\n message.error('failed');\n }\n setSetting(false);\n };\n\n return (\n \n
Remove Collection
\n
\n
Market
\n \n
\n\n
\n
Collection/Canister ID
\n setCollectionId(e.target.value)} />\n
\n\n \n Delete\n \n
\n );\n};\n\nconst stateToProps = (state: any) => {\n return state;\n};\n\nexport default connect(stateToProps)(DeleteCollection);\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason` at `place` from `origin`.\n *\n * When an error is passed in as `reason`, the `stack` is copied.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n *\n * > 👉 **Note**: you should use markdown.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // To do: next major: expose `undefined` everywhere instead of `null`.\n constructor(reason, place, origin) {\n /** @type {[string | null, string | null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n // To do: next major: deep clone.\n // @ts-expect-error: looks like a position.\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-expect-error: looks like a position.\n // To do: next major: deep clone.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // To do: next major: deep clone.\n position.start = place\n }\n }\n\n // Fields from `Error`.\n /**\n * Serialized positional info of error.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(place) || '1:1'\n\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = typeof reason === 'object' ? reason.message : reason\n\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack = ''\n\n if (typeof reason === 'object' && reason.stack) {\n this.stack = reason.stack\n }\n\n /**\n * Reason for message.\n *\n * > 👉 **Note**: you should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /* eslint-disable no-unused-expressions */\n /**\n * State of problem.\n *\n * * `true` — marks associated file as no longer processable (error)\n * * `false` — necessitates a (potential) change (warning)\n * * `null | undefined` — for things that might not need changing (info)\n *\n * @type {boolean | null | undefined}\n */\n this.fatal\n\n /**\n * Starting line of error.\n *\n * @type {number | null}\n */\n this.line = position.start.line\n\n /**\n * Starting column of error.\n *\n * @type {number | null}\n */\n this.column = position.start.column\n\n /**\n * Full unist position.\n *\n * @type {Position | null}\n */\n this.position = position\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | null}\n */\n this.source = parts[0]\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | null}\n */\n this.ruleId = parts[1]\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | null}\n */\n this.file\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | null}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array | null}\n */\n this.expected\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | null}\n */\n this.url\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | null}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// 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, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * Check if `fileUrlOrPath` looks like a URL.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return (\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.href &&\n // @ts-expect-error: indexable.\n fileUrlOrPath.origin\n )\n}\n","/// \n\nimport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {string | URL} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {Record & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n *\n * This is a copy of the types from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: \n *\n * @typedef {Options | URL | Value | VFile} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {Value | null | undefined} [value]\n * Set `value`.\n * @property {string | null | undefined} [cwd]\n * Set `cwd`.\n * @property {Array | null | undefined} [history]\n * Set `history`.\n * @property {URL | string | null | undefined} [path]\n * Set `path`.\n * @property {string | null | undefined} [basename]\n * Set `basename`.\n * @property {string | null | undefined} [stem]\n * Set `stem`.\n * @property {string | null | undefined} [extname]\n * Set `extname`.\n * @property {string | null | undefined} [dirname]\n * Set `dirname`.\n * @property {Data | null | undefined} [data]\n * Set `data`.\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template {ReporterSettings} Settings\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport bufferLike from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n *\n * @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}\n */\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Buffer` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {string | URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Buffer`\n * (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding || undefined)\n }\n\n /**\n * Create a warning message associated with the file.\n *\n * Its `fatal` is set to `false` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Create an info message associated with the file.\n *\n * Its `fatal` is set to `null` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Create a fatal error associated with the file.\n *\n * Its `fatal` is set to `true` and `file` is set to the current file path.\n * Its added to `file.messages`.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string | Error | VFileMessage} reason\n * Reason for message, uses the stack and message of the error if given.\n * @param {Node | NodeLike | Position | Point | null | undefined} [place]\n * Place in file where the message occurred.\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Message.\n * @throws {VFileMessage}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {void}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is a buffer.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Buffer}\n * Whether `value` is a Node.js buffer.\n */\nfunction buffer(value) {\n return bufferLike(value)\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s.\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML.\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} value\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Node}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array} items\n * Items to inject into `list`.\n * @returns {void}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array} list\n * List to operate on.\n * @param {Array} items\n * Items to add to `list`.\n * @returns {Array}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record} */\n const left = maybe || (all[hook] = {})\n /** @type {Record | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array} existing\n * @param {Array} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\n/**\n * Regular expression that matches a unicode punctuation character.\n */\nexport const unicodePunctuationRegex =\n /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061D-\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1B7D\\u1B7E\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52-\\u2E5D\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n if (previous) {\n previous.next = token\n }\n previous = token\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n}\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n return checkNewContainers(code)\n }\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow'))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {void}\n */\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n seen = true\n }\n }\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {void}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n stack.length = size\n }\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, 'linePrefix')(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\n/**\n * Tokenize subcontent.\n *\n * @param {Array} events\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\nexport function subtokenize(events) {\n /** @type {Record} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array} */\n let parameters\n /** @type {Array} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n event = events[index]\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {Array} events\n * @param {number} eventIndex\n * @returns {Record}\n */\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {Array} */\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record} */\n const gaps = {}\n /** @type {Array} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition)\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n if (!current.next) {\n stream.push(null)\n }\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n tokenizer.write(stream)\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n index = -1\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n\n/** @type {Construct} */\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1]\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === null) {\n return true\n }\n const list = constructs[code]\n let index = -1\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n enter = undefined\n }\n }\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n while (index--) {\n const chunk = chunks[index]\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n eventIndex++\n }\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {void}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record} */\n const columnStart = {}\n /** @type {Array} */\n const resolveAllConstructs = []\n /** @type {Array} */\n let chunks = []\n /** @type {Array} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | void}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {\n line,\n column,\n offset,\n _index,\n _bufferIndex\n }\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n return Array.isArray(constructs) /* c8 ignore next 1 */\n ? handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n if (list.length === 0) {\n return bogusState\n }\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true\n info.restore()\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n\n /**\n * Restore state.\n *\n * @returns {void}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array} chunks\n * @param {Pick} token\n * @returns {Array}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array} */\n let view\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n view.shift()\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n case -4: {\n value = '\\n'\n break\n }\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n atTab = chunk === -2\n result.push(value)\n }\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('thematicBreak')\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit('thematicBreak')\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n effects.exit('thematicBreakSequence')\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, 'whitespace')(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(\n effects,\n contBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n *
\n * b>\n * \n * \n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (``).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | \n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return enclosed\n }\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === null || code === 41 || markdownLineEndingOrSpace(code))\n ) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n if (balance < limit && code === 40) {\n effects.consume(code)\n balance++\n return raw\n }\n if (code === 41) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return code === 92 ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return raw\n }\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > 999 ||\n code === null ||\n code === 91 ||\n (code === 93 && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */ // eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return begin\n }\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n if (code === null) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atBreak, 'linePrefix')\n }\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n effects.consume(code)\n return code === 92 ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return inside\n }\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ')\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n\n/** @type {Construct} */\nconst titleBefore = {\n tokenize: tokenizeTitleBefore,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter('definition')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n return markerAfter\n }\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, 'whitespace')(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {\n tokenize: tokenizeFurtherStart,\n partial: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter('codeIndented')\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code)\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return atBreak(code)\n }\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit('codeIndented')\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter('atxHeading')\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('atxHeadingSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequenceFurther(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code)\n return sequenceFurther\n }\n effects.exit('atxHeadingSequence')\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return atBreak(code)\n }\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = 'setextHeadingText'\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n marker = code\n return before(code)\n }\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('setextHeadingLineSequence')\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n effects.exit('setextHeadingLineSequence')\n return markdownSpace(code)\n ? factorySpace(effects, after, 'lineSuffix')(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * .\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * .\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {\n tokenize: tokenizeBlankLineBefore,\n partial: true\n}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n marker = 3\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n marker = 2\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n marker = 5\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = 4\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n return nok(code)\n }\n\n /**\n * After ` | &<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * After ` | \n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | \n * ^^\n * > | \n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === 47\n const name = buffer.toLowerCase()\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n marker = 7\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > |
\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 47 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n if (code === 60 && marker === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n if (code === 62 && marker === 4) {\n effects.consume(code)\n return continuationClose\n }\n if (code === 63 && marker === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n if (code === 93 && marker === 5) {\n effects.consume(code)\n return continuationCdataInside\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit('htmlFlowData')\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationStart(code)\n }\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | \n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | \n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n // @ts-expect-error `Buffer` does allow an encoding.\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > 126 && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) ||\n // Noncharacters.\n (code > 64975 && code < 65008) /* eslint-disable no-bitwise */ ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||\n // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Root | Content} Node\n * @typedef {Extract} Parent\n *\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | undefined | null | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {void}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(key: Key) => CompileData[Key]} getData\n * Get data from the key/value store.\n * @property {(key: Key, value?: CompileData[Key]) => void} setData\n * Set data into the key/value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\n// To do: micromark: create a registry of tokens?\n// To do: next major: don’t return given `Node` from `enter`.\n// To do: next major: remove setter/getter.\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * @param value\n * Markdown to parse.\n * @param encoding\n * Character encoding for when `value` is `Buffer`.\n * @param options\n * Configuration.\n * @returns\n * mdast tree.\n */\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &\n * ((value: Value, options?: Options | null | undefined) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding | Options | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n // @ts-expect-error: `listItem` is most definitely defined, TS...\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Set data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @param {CompileData[Key]} [value]\n * New value.\n * @returns {void}\n * Nothing.\n */\n function setData(key, value) {\n data[key] = value\n }\n\n /**\n * Get data.\n *\n * @template {keyof CompileData} Key\n * Field type.\n * @param {Key} key\n * Key of field.\n * @returns {CompileData[Key]}\n * Value.\n */\n function getData(key) {\n return data[key]\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Node} create\n * Create a node.\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {void}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @template {Node} Kind\n * Node type.\n * @this {CompileContext}\n * Context.\n * @param {Kind} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {Kind}\n * The given node.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n // @ts-expect-error: `end` will be patched later.\n node.position = {\n start: point(token.start)\n }\n return node\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {Node}\n * The closed node.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n return node\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n let tail = node.children[node.children.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n // @ts-expect-error: we’ll add `end` later.\n tail.position = {\n start: point(token.start)\n }\n // @ts-expect-error: Assume `parent` accepts `text`.\n node.children.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (getData('inReference')) {\n /** @type {ReferenceType} */\n const referenceType = getData('referenceType') || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n setData('referenceType')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n setData('inReference', true)\n if (node.type === 'link') {\n /** @type {Array} */\n // @ts-expect-error: Assume static phrasing content.\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n setData('inReference')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {HTML} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array>} extensions\n * @returns {void}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {void}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n if (key === 'canContainEols') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'transforms') {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n } else if (key === 'enter' || key === 'exit') {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * @this {import('unified').Processor}\n * @type {import('unified').Plugin<[Options?] | void[], string, Root>}\n */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55295 && code < 57344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56320 && next > 56319 && next < 57344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * Node.\n * @returns {Position}\n * Position.\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start' | 'end'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {NodeLike | Node | null | undefined} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n // To do: next major: don’t return points when invalid.\n return {\n // @ts-expect-error: in practice, null is allowed.\n line: point.line || null,\n // @ts-expect-error: in practice, null is allowed.\n column: point.column || null,\n // @ts-expect-error: in practice, null is allowed.\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Definition} Definition\n */\n\n/**\n * @typedef {Root | Content} Node\n *\n * @callback GetDefinition\n * Get a definition by identifier.\n * @param {string | null | undefined} [identifier]\n * Identifier of definition.\n * @returns {Definition | null}\n * Definition corresponding to `identifier` or `null`.\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `tree`.\n *\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} tree\n * Tree to check.\n * @returns {GetDefinition}\n * Getter.\n */\nexport function definitions(tree) {\n /** @type {Record} */\n const cache = Object.create(null)\n\n if (!tree || !tree.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(tree, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /** @type {GetDefinition} */\n function definition(identifier) {\n const id = clean(identifier)\n // To do: next major: return `undefined` when not found.\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string | null | undefined} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('hast').Element} Element\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n if (index === -1) {\n state.footnoteOrder.push(id)\n state.footnoteCounts[id] = 1\n counter = state.footnoteOrder.length\n } else {\n state.footnoteCounts[id]++\n counter = index + 1\n }\n\n const reuseCounter = state.footnoteCounts[id]\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + state.clobberPrefix + 'fn-' + safeId,\n id:\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Reference} Reference\n * @typedef {import('mdast').Root} Root\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} References\n */\n\n// To do: next major: always return array.\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {References} node\n * Reference node (image, link).\n * @returns {ElementContent | Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return {type: 'text', value: '![' + node.alt + suffix}\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | null | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n // To do: next major: return `undefined`.\n return null\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang ? node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/) : null\n /** @type {Properties} */\n const properties = {}\n\n if (lang) {\n properties.className = ['language-' + lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../state.js').State} State\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n// To do: when both:\n// * \n// * \n// …are archived, remove this (also from mdast).\n// These inline notes are not used in GFM.\n\n/**\n * Turn an mdast `footnote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Footnote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnote(state, node) {\n  const footnoteById = state.footnoteById\n  let no = 1\n\n  while (no in footnoteById) no++\n\n  const identifier = String(no)\n\n  footnoteById[identifier] = {\n    type: 'footnoteDefinition',\n    identifier,\n    children: [{type: 'paragraph', children: node.children}],\n    position: node.position\n  }\n\n  return footnoteReference(state, {\n    type: 'footnoteReference',\n    identifier,\n    position: node.position\n  })\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').HTML} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Raw | Element | null}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.dangerous) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  // To do: next major: return `undefined`.\n  return null\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {ElementContent | Array}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const def = state.definition(node.identifier)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastRoot | HastElement}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start.line && end.line) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * @typedef {Root | Content} Nodes\n * @typedef {Extract} Parents\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | null | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(node, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastText | HastElement}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Parent} MdastParent\n * @typedef {import('mdast').Root} MdastRoot\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n * @typedef {Extract} MdastParents\n *\n * @typedef EmbeddedHastFields\n *   hast fields.\n * @property {string | null | undefined} [hName]\n *   Generate a specific element with this tag name instead.\n * @property {HastProperties | null | undefined} [hProperties]\n *   Generate an element with these properties instead.\n * @property {Array | null | undefined} [hChildren]\n *   Generate an element with this content instead.\n *\n * @typedef {Record & EmbeddedHastFields} MdastData\n *   mdast data with embedded hast fields.\n *\n * @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData\n *   mdast node with embedded hast data.\n *\n * @typedef PointLike\n *   Point-like value.\n * @property {number | null | undefined} [line]\n *   Line.\n * @property {number | null | undefined} [column]\n *   Column.\n * @property {number | null | undefined} [offset]\n *   Offset.\n *\n * @typedef PositionLike\n *   Position-like value.\n * @property {PointLike | null | undefined} [start]\n *   Point-like value.\n * @property {PointLike | null | undefined} [end]\n *   Point-like value.\n *\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | null | undefined} parent\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   hast node.\n *\n * @callback HFunctionProps\n *   Signature of `state` for when props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {HastProperties} props\n *   Properties.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @callback HFunctionNoProps\n *   Signature of `state` for when no props are passed.\n * @param {MdastNodes | PositionLike | null | undefined} node\n *   mdast node or unist position.\n * @param {string} tagName\n *   HTML tag name.\n * @param {Array | null | undefined} [children]\n *   hast content.\n * @returns {HastElement}\n *   Compiled element.\n *\n * @typedef HFields\n *   Info on `state`.\n * @property {boolean} dangerous\n *   Whether HTML is allowed.\n * @property {string} clobberPrefix\n *   Prefix to use to prevent DOM clobbering.\n * @property {string} footnoteLabel\n *   Label to use to introduce the footnote section.\n * @property {string} footnoteLabelTagName\n *   HTML used for the footnote label.\n * @property {HastProperties} footnoteLabelProperties\n *   Properties on the HTML tag used for the footnote label.\n * @property {string} footnoteBackLabel\n *   Label to use from backreferences back to their footnote call.\n * @property {(identifier: string) => MdastDefinition | null} definition\n *   Definition cache.\n * @property {Record} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Array} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Record} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {Handler} unknownHandler\n *   Handler for any none not in `passThrough` or otherwise handled.\n * @property {(from: MdastNodes, node: HastNodes) => void} patch\n *   Copy a node’s positional info.\n * @property {(from: MdastNodes, to: Type) => Type | HastElement} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array | null | undefined} one\n *   Transform an mdast node to hast.\n * @property {(node: MdastNodes) => Array} all\n *   Transform the children of an mdast parent to hast.\n * @property {(nodes: Array, loose?: boolean | null | undefined) => Array} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n * @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment\n *   Like `state` but lower-level and usable on non-elements.\n *   Deprecated: use `patch` and `applyData`.\n * @property {Array} passThrough\n *   List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree.\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` attribute on footnotes to prevent it from\n *   *clobbering*.\n * @property {string | null | undefined} [footnoteBackLabel='Back to content']\n *   Label to use from backreferences back to their footnote call (affects\n *   screen readers).\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Label to use for the footnotes section (affects screen readers).\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (note that `id: 'footnote-label'`\n *   is always added as footnote calls use it with `aria-describedby` to\n *   provide an accessible label).\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   Tag name to use for the footnote label.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes.\n * @property {Array | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n *   Handle nodes.\n *\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} State\n *   Info passed around.\n */\n\nimport {visit} from 'unist-util-visit'\nimport {position, pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || {}\n  const dangerous = settings.allowDangerousHtml || false\n  /** @type {Record} */\n  const footnoteById = {}\n\n  // To do: next major: add `options` to state, remove:\n  // `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,\n  // `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,\n  // `unknownHandler`.\n\n  // To do: next major: move to `state.options.allowDangerousHtml`.\n  state.dangerous = dangerous\n  // To do: next major: move to `state.options`.\n  state.clobberPrefix =\n    settings.clobberPrefix === undefined || settings.clobberPrefix === null\n      ? 'user-content-'\n      : settings.clobberPrefix\n  // To do: next major: move to `state.options`.\n  state.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2'\n  // To do: next major: move to `state.options`.\n  state.footnoteLabelProperties = settings.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  // To do: next major: move to `state.options`.\n  state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n  // To do: next major: move to `state.options`.\n  state.unknownHandler = settings.unknownHandler\n  // To do: next major: move to `state.options`.\n  state.passThrough = settings.passThrough\n\n  state.handlers = {...handlers, ...settings.handlers}\n\n  // To do: next major: replace utility with `definitionById` object, so we\n  // only walk once (as we need footnotes too).\n  state.definition = definitions(tree)\n  state.footnoteById = footnoteById\n  /** @type {Array} */\n  state.footnoteOrder = []\n  /** @type {Record} */\n  state.footnoteCounts = {}\n\n  state.patch = patch\n  state.applyData = applyData\n  state.one = oneBound\n  state.all = allBound\n  state.wrap = wrap\n  // To do: next major: remove `augment`.\n  state.augment = augment\n\n  visit(tree, 'footnoteDefinition', (definition) => {\n    const id = String(definition.identifier).toUpperCase()\n\n    // Mimick CM behavior of link definitions.\n    // See: .\n    if (!own.call(footnoteById, id)) {\n      footnoteById[id] = definition\n    }\n  })\n\n  // @ts-expect-error Hush, it’s fine!\n  return state\n\n  /**\n   * Finalise the created `right`, a hast node, from `left`, an mdast node.\n   *\n   * @param {MdastNodeWithData | PositionLike | null | undefined} left\n   * @param {HastElementContent} right\n   * @returns {HastElementContent}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function augment(left, right) {\n    // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n    if (left && 'data' in left && left.data) {\n      /** @type {MdastData} */\n      const data = left.data\n\n      if (data.hName) {\n        if (right.type !== 'element') {\n          right = {\n            type: 'element',\n            tagName: '',\n            properties: {},\n            children: []\n          }\n        }\n\n        right.tagName = data.hName\n      }\n\n      if (right.type === 'element' && data.hProperties) {\n        right.properties = {...right.properties, ...data.hProperties}\n      }\n\n      if ('children' in right && right.children && data.hChildren) {\n        right.children = data.hChildren\n      }\n    }\n\n    if (left) {\n      const ctx = 'type' in left ? left : {position: left}\n\n      if (!generated(ctx)) {\n        // @ts-expect-error: fine.\n        right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n      }\n    }\n\n    return right\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Create an element for `node`.\n   *\n   * @type {HFunctionProps}\n   */\n  /* c8 ignore start */\n  // To do: next major: remove.\n  function state(node, tagName, props, children) {\n    if (Array.isArray(props)) {\n      children = props\n      props = {}\n    }\n\n    // @ts-expect-error augmenting an element yields an element.\n    return augment(node, {\n      type: 'element',\n      tagName,\n      properties: props || {},\n      children: children || []\n    })\n  }\n  /* c8 ignore stop */\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | null | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {HastElementContent | Array | null | undefined}\n   *   Resulting hast node.\n   */\n  function oneBound(node, parent) {\n    // @ts-expect-error: that’s a state :)\n    return one(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array}\n   *   Resulting hast nodes.\n   */\n  function allBound(parent) {\n    // @ts-expect-error: that’s a state :)\n    return all(state, parent)\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {void}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {Type | HastElement}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {Type | HastElement} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent is likely to keep the content around (otherwise: pass\n      // `hChildren`).\n      else {\n        result = {\n          type: 'element',\n          tagName: hName,\n          properties: {},\n          children: []\n        }\n\n        // To do: next major: take the children from the `root`, or inject the\n        // raw/text/comment or so into the element?\n        // if ('children' in node) {\n        //   // @ts-expect-error: assume `children` are allowed in elements.\n        //   result.children = node.children\n        // } else {\n        //   // @ts-expect-error: assume `node` is allowed in elements.\n        //   result.children.push(node)\n        // }\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      result.properties = {...result.properties, ...hProperties}\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      // @ts-expect-error: assume valid children are defined.\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an mdast node into a hast node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   mdast node.\n * @param {MdastParents | null | undefined} [parent]\n *   Parent of `node`.\n * @returns {HastElementContent | Array | null | undefined}\n *   Resulting hast node.\n */\n// To do: next major: do not expose, keep bound.\nexport function one(state, node, parent) {\n  const type = node && node.type\n\n  // Fail on non-nodes.\n  if (!type) {\n    throw new Error('Expected node, got `' + node + '`')\n  }\n\n  if (own.call(state.handlers, type)) {\n    return state.handlers[type](state, node, parent)\n  }\n\n  if (state.passThrough && state.passThrough.includes(type)) {\n    // To do: next major: deep clone.\n    // @ts-expect-error: types of passed through nodes are expected to be added manually.\n    return 'children' in node ? {...node, children: all(state, node)} : node\n  }\n\n  if (state.unknownHandler) {\n    return state.unknownHandler(state, node, parent)\n  }\n\n  return defaultUnknownHandler(state, node)\n}\n\n/**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} parent\n *   mdast node to compile\n * @returns {Array}\n *   Resulting hast nodes.\n */\n// To do: next major: do not expose, keep bound.\nexport function all(state, parent) {\n  /** @type {Array} */\n  const values = []\n\n  if ('children' in parent) {\n    const nodes = parent.children\n    let index = -1\n    while (++index < nodes.length) {\n      const result = one(state, nodes[index], parent)\n\n      // To do: see if we van clean this? Can we merge texts?\n      if (result) {\n        if (index && nodes[index - 1].type === 'break') {\n          if (!Array.isArray(result) && result.type === 'text') {\n            result.value = result.value.replace(/^\\s+/, '')\n          }\n\n          if (!Array.isArray(result) && result.type === 'element') {\n            const head = result.children[0]\n\n            if (head && head.type === 'text') {\n              head.value = head.value.replace(/^\\s+/, '')\n            }\n          }\n        }\n\n        if (Array.isArray(result)) {\n          values.push(...result)\n        } else {\n          values.push(result)\n        }\n      }\n    }\n  }\n\n  return values\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastText | HastElement}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastText | HastElement} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: all(state, node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastContent} Type\n *   Node type.\n * @param {Array} nodes\n *   List of nodes to wrap.\n * @param {boolean | null | undefined} [loose=false]\n *   Whether to add line endings at start and end.\n * @returns {Array}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n","/**\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef NodeLike\n * @property {PositionLike | null | undefined} [position]\n */\n\n/**\n * Check if `node` is generated.\n *\n * @param {NodeLike | null | undefined} [node]\n *   Node to check.\n * @returns {boolean}\n *   Whether `node` is generated (does not have positional info).\n */\nexport function generated(node) {\n  return (\n    !node ||\n    !node.position ||\n    !node.position.start ||\n    !node.position.start.line ||\n    !node.position.start.column ||\n    !node.position.end ||\n    !node.position.end.line ||\n    !node.position.end.column\n  )\n}\n","/**\n * @typedef {import('hast').Content} HastContent\n * @typedef {import('hast').Root} HastRoot\n *\n * @typedef {import('mdast').Content} MdastContent\n * @typedef {import('mdast').Root} MdastRoot\n *\n * @typedef {import('./state.js').Options} Options\n */\n\n/**\n * @typedef {HastRoot | HastContent} HastNodes\n * @typedef {MdastRoot | MdastContent} MdastNodes\n */\n\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * 

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {HastNodes | null | undefined}\n * hast tree.\n */\n// To do: next major: always return a single `root`.\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, null)\n const foot = footer(state)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n // To do: next major: always return root?\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\nexport function footer(state) {\n /** @type {Array} */\n const listItems = []\n let index = -1\n\n while (++index < state.footnoteOrder.length) {\n const def = state.footnoteById[state.footnoteOrder[index]]\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= state.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n state.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: state.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: state.clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: state.footnoteLabelTagName,\n properties: {\n // To do: use structured clone.\n ...JSON.parse(JSON.stringify(state.footnoteLabelProperties)),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: state.footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record} Properties\n * @typedef {Record} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // ``. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // ``. List of URIs to archives\n axis: null, // `` and ``. Use `scope` on ``\n background: null, // ``. Use CSS `background-image` instead\n bgColor: null, // `` and table elements. Use CSS `background-color` instead\n border: number, // ``. Use CSS `border-width` instead,\n borderColor: null, // `
`. Use CSS `border-color` instead,\n bottomMargin: number, // ``\n cellPadding: null, // `
`\n cellSpacing: null, // `
`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // ``\n clear: null, // `
`. Use CSS `clear` instead\n code: null, // ``\n codeBase: null, // ``\n codeType: null, // ``\n color: null, // `` and `
`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // ``\n event: null, // `