{"version":3,"file":"static/js/main.3ecd491a.js","mappings":"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MAAQ,MACR,MAAQ,IACR,MAAQ,MACR,MAAQ,IACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,GACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,IACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,IACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,IACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,IACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,IAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACN,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,KAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,KACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,MAAQ,MACR,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","sources":["../node_modules/jsqr/dist/jsQR.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../Webcam/webpack/universalModuleDefinition","../Webcam/webpack/bootstrap","../Webcam/src/react-webcam.tsx","../Webcam/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-redux/src/utils/react.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/react-redux/src/utils/react-is.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/react-redux/src/index.ts","../node_modules/react-redux/src/components/connect.tsx","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/clsx/dist/clsx.mjs","components/RegistrationForm.js","components/WelcomePage.js","components/AboutProgram.js","components/Programs.js","components/ThankyouPage.js","components/AboutPageDetails.js","components/AboutProgram2.js","components/AboutProgram3.js","components/AboutProgram4.js","components/AboutPageDetails2.js","components/AboutPageDetails3.js","components/AboutPageDetails4.js","components/LoginPage.js","components/QRScanner.js","components/PrivateRoute.js","components/PageNotFound1.js","components/UnprotectedRoute.js","App.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","store/Store.jsx","index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"jsQR\"] = factory();\n\telse\n\t\troot[\"jsQR\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix = /** @class */ (function () {\n function BitMatrix(data, width) {\n this.width = width;\n this.height = data.length / width;\n this.data = data;\n }\n BitMatrix.createEmpty = function (width, height) {\n return new BitMatrix(new Uint8ClampedArray(width * height), width);\n };\n BitMatrix.prototype.get = function (x, y) {\n if (x < 0 || x >= this.width || y < 0 || y >= this.height) {\n return false;\n }\n return !!this.data[y * this.width + x];\n };\n BitMatrix.prototype.set = function (x, y, v) {\n this.data[y * this.width + x] = v ? 1 : 0;\n };\n BitMatrix.prototype.setRegion = function (left, top, width, height, v) {\n for (var y = top; y < top + height; y++) {\n for (var x = left; x < left + width; x++) {\n this.set(x, y, !!v);\n }\n }\n };\n return BitMatrix;\n}());\nexports.BitMatrix = BitMatrix;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGFPoly_1 = __webpack_require__(2);\nfunction addOrSubtractGF(a, b) {\n return a ^ b; // tslint:disable-line:no-bitwise\n}\nexports.addOrSubtractGF = addOrSubtractGF;\nvar GenericGF = /** @class */ (function () {\n function GenericGF(primitive, size, genBase) {\n this.primitive = primitive;\n this.size = size;\n this.generatorBase = genBase;\n this.expTable = new Array(this.size);\n this.logTable = new Array(this.size);\n var x = 1;\n for (var i = 0; i < this.size; i++) {\n this.expTable[i] = x;\n x = x * 2;\n if (x >= this.size) {\n x = (x ^ this.primitive) & (this.size - 1); // tslint:disable-line:no-bitwise\n }\n }\n for (var i = 0; i < this.size - 1; i++) {\n this.logTable[this.expTable[i]] = i;\n }\n this.zero = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([0]));\n this.one = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([1]));\n }\n GenericGF.prototype.multiply = function (a, b) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n };\n GenericGF.prototype.inverse = function (a) {\n if (a === 0) {\n throw new Error(\"Can't invert 0\");\n }\n return this.expTable[this.size - this.logTable[a] - 1];\n };\n GenericGF.prototype.buildMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new Error(\"Invalid monomial degree less than 0\");\n }\n if (coefficient === 0) {\n return this.zero;\n }\n var coefficients = new Uint8ClampedArray(degree + 1);\n coefficients[0] = coefficient;\n return new GenericGFPoly_1.default(this, coefficients);\n };\n GenericGF.prototype.log = function (a) {\n if (a === 0) {\n throw new Error(\"Can't take log(0)\");\n }\n return this.logTable[a];\n };\n GenericGF.prototype.exp = function (a) {\n return this.expTable[a];\n };\n return GenericGF;\n}());\nexports.default = GenericGF;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGF_1 = __webpack_require__(1);\nvar GenericGFPoly = /** @class */ (function () {\n function GenericGFPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new Error(\"No coefficients.\");\n }\n this.field = field;\n var coefficientsLength = coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n var firstNonZero = 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = field.zero.coefficients;\n }\n else {\n this.coefficients = new Uint8ClampedArray(coefficientsLength - firstNonZero);\n for (var i = 0; i < this.coefficients.length; i++) {\n this.coefficients[i] = coefficients[firstNonZero + i];\n }\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n GenericGFPoly.prototype.degree = function () {\n return this.coefficients.length - 1;\n };\n GenericGFPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n GenericGFPoly.prototype.getCoefficient = function (degree) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n };\n GenericGFPoly.prototype.addOrSubtract = function (other) {\n var _a;\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n _a = [largerCoefficients, smallerCoefficients], smallerCoefficients = _a[0], largerCoefficients = _a[1];\n }\n var sumDiff = new Uint8ClampedArray(largerCoefficients.length);\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n for (var i = 0; i < lengthDiff; i++) {\n sumDiff[i] = largerCoefficients[i];\n }\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = GenericGF_1.addOrSubtractGF(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n };\n GenericGFPoly.prototype.multiply = function (scalar) {\n if (scalar === 0) {\n return this.field.zero;\n }\n if (scalar === 1) {\n return this;\n }\n var size = this.coefficients.length;\n var product = new Uint8ClampedArray(size);\n for (var i = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], scalar);\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.multiplyPoly = function (other) {\n if (this.isZero() || other.isZero()) {\n return this.field.zero;\n }\n var aCoefficients = this.coefficients;\n var aLength = aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = bCoefficients.length;\n var product = new Uint8ClampedArray(aLength + bLength - 1);\n for (var i = 0; i < aLength; i++) {\n var aCoeff = aCoefficients[i];\n for (var j = 0; j < bLength; j++) {\n product[i + j] = GenericGF_1.addOrSubtractGF(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.multiplyByMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new Error(\"Invalid degree less than 0\");\n }\n if (coefficient === 0) {\n return this.field.zero;\n }\n var size = this.coefficients.length;\n var product = new Uint8ClampedArray(size + degree);\n for (var i = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], coefficient);\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.evaluateAt = function (a) {\n var result = 0;\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n var size = this.coefficients.length;\n if (a === 1) {\n // Just the sum of the coefficients\n this.coefficients.forEach(function (coefficient) {\n result = GenericGF_1.addOrSubtractGF(result, coefficient);\n });\n return result;\n }\n result = this.coefficients[0];\n for (var i = 1; i < size; i++) {\n result = GenericGF_1.addOrSubtractGF(this.field.multiply(a, result), this.coefficients[i]);\n }\n return result;\n };\n return GenericGFPoly;\n}());\nexports.default = GenericGFPoly;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binarizer_1 = __webpack_require__(4);\nvar decoder_1 = __webpack_require__(5);\nvar extractor_1 = __webpack_require__(11);\nvar locator_1 = __webpack_require__(12);\nfunction scan(matrix) {\n var locations = locator_1.locate(matrix);\n if (!locations) {\n return null;\n }\n for (var _i = 0, locations_1 = locations; _i < locations_1.length; _i++) {\n var location_1 = locations_1[_i];\n var extracted = extractor_1.extract(matrix, location_1);\n var decoded = decoder_1.decode(extracted.matrix);\n if (decoded) {\n return {\n binaryData: decoded.bytes,\n data: decoded.text,\n chunks: decoded.chunks,\n version: decoded.version,\n location: {\n topRightCorner: extracted.mappingFunction(location_1.dimension, 0),\n topLeftCorner: extracted.mappingFunction(0, 0),\n bottomRightCorner: extracted.mappingFunction(location_1.dimension, location_1.dimension),\n bottomLeftCorner: extracted.mappingFunction(0, location_1.dimension),\n topRightFinderPattern: location_1.topRight,\n topLeftFinderPattern: location_1.topLeft,\n bottomLeftFinderPattern: location_1.bottomLeft,\n bottomRightAlignmentPattern: location_1.alignmentPattern,\n },\n };\n }\n }\n return null;\n}\nvar defaultOptions = {\n inversionAttempts: \"attemptBoth\",\n};\nfunction jsQR(data, width, height, providedOptions) {\n if (providedOptions === void 0) { providedOptions = {}; }\n var options = defaultOptions;\n Object.keys(options || {}).forEach(function (opt) {\n options[opt] = providedOptions[opt] || options[opt];\n });\n var shouldInvert = options.inversionAttempts === \"attemptBoth\" || options.inversionAttempts === \"invertFirst\";\n var tryInvertedFirst = options.inversionAttempts === \"onlyInvert\" || options.inversionAttempts === \"invertFirst\";\n var _a = binarizer_1.binarize(data, width, height, shouldInvert), binarized = _a.binarized, inverted = _a.inverted;\n var result = scan(tryInvertedFirst ? inverted : binarized);\n if (!result && (options.inversionAttempts === \"attemptBoth\" || options.inversionAttempts === \"invertFirst\")) {\n result = scan(tryInvertedFirst ? binarized : inverted);\n }\n return result;\n}\njsQR.default = jsQR;\nexports.default = jsQR;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nvar REGION_SIZE = 8;\nvar MIN_DYNAMIC_RANGE = 24;\nfunction numBetween(value, min, max) {\n return value < min ? min : value > max ? max : value;\n}\n// Like BitMatrix but accepts arbitry Uint8 values\nvar Matrix = /** @class */ (function () {\n function Matrix(width, height) {\n this.width = width;\n this.data = new Uint8ClampedArray(width * height);\n }\n Matrix.prototype.get = function (x, y) {\n return this.data[y * this.width + x];\n };\n Matrix.prototype.set = function (x, y, value) {\n this.data[y * this.width + x] = value;\n };\n return Matrix;\n}());\nfunction binarize(data, width, height, returnInverted) {\n if (data.length !== width * height * 4) {\n throw new Error(\"Malformed data passed to binarizer.\");\n }\n // Convert image to greyscale\n var greyscalePixels = new Matrix(width, height);\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n var r = data[((y * width + x) * 4) + 0];\n var g = data[((y * width + x) * 4) + 1];\n var b = data[((y * width + x) * 4) + 2];\n greyscalePixels.set(x, y, 0.2126 * r + 0.7152 * g + 0.0722 * b);\n }\n }\n var horizontalRegionCount = Math.ceil(width / REGION_SIZE);\n var verticalRegionCount = Math.ceil(height / REGION_SIZE);\n var blackPoints = new Matrix(horizontalRegionCount, verticalRegionCount);\n for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {\n for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {\n var sum = 0;\n var min = Infinity;\n var max = 0;\n for (var y = 0; y < REGION_SIZE; y++) {\n for (var x = 0; x < REGION_SIZE; x++) {\n var pixelLumosity = greyscalePixels.get(hortizontalRegion * REGION_SIZE + x, verticalRegion * REGION_SIZE + y);\n sum += pixelLumosity;\n min = Math.min(min, pixelLumosity);\n max = Math.max(max, pixelLumosity);\n }\n }\n var average = sum / (Math.pow(REGION_SIZE, 2));\n if (max - min <= MIN_DYNAMIC_RANGE) {\n // If variation within the block is low, assume this is a block with only light or only\n // dark pixels. In that case we do not want to use the average, as it would divide this\n // low contrast area into black and white pixels, essentially creating data out of noise.\n //\n // Default the blackpoint for these blocks to be half the min - effectively white them out\n average = min / 2;\n if (verticalRegion > 0 && hortizontalRegion > 0) {\n // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n // the pixels in this block to the previously calculated black points. This is based on\n // the fact that dark barcode symbology is always surrounded by some amount of light\n // background for which reasonable black point estimates were made. The bp estimated at\n // the boundaries is used for the interior.\n // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n var averageNeighborBlackPoint = (blackPoints.get(hortizontalRegion, verticalRegion - 1) +\n (2 * blackPoints.get(hortizontalRegion - 1, verticalRegion)) +\n blackPoints.get(hortizontalRegion - 1, verticalRegion - 1)) / 4;\n if (min < averageNeighborBlackPoint) {\n average = averageNeighborBlackPoint;\n }\n }\n }\n blackPoints.set(hortizontalRegion, verticalRegion, average);\n }\n }\n var binarized = BitMatrix_1.BitMatrix.createEmpty(width, height);\n var inverted = null;\n if (returnInverted) {\n inverted = BitMatrix_1.BitMatrix.createEmpty(width, height);\n }\n for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {\n for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {\n var left = numBetween(hortizontalRegion, 2, horizontalRegionCount - 3);\n var top_1 = numBetween(verticalRegion, 2, verticalRegionCount - 3);\n var sum = 0;\n for (var xRegion = -2; xRegion <= 2; xRegion++) {\n for (var yRegion = -2; yRegion <= 2; yRegion++) {\n sum += blackPoints.get(left + xRegion, top_1 + yRegion);\n }\n }\n var threshold = sum / 25;\n for (var xRegion = 0; xRegion < REGION_SIZE; xRegion++) {\n for (var yRegion = 0; yRegion < REGION_SIZE; yRegion++) {\n var x = hortizontalRegion * REGION_SIZE + xRegion;\n var y = verticalRegion * REGION_SIZE + yRegion;\n var lum = greyscalePixels.get(x, y);\n binarized.set(x, y, lum <= threshold);\n if (returnInverted) {\n inverted.set(x, y, !(lum <= threshold));\n }\n }\n }\n }\n }\n if (returnInverted) {\n return { binarized: binarized, inverted: inverted };\n }\n return { binarized: binarized };\n}\nexports.binarize = binarize;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nvar decodeData_1 = __webpack_require__(6);\nvar reedsolomon_1 = __webpack_require__(9);\nvar version_1 = __webpack_require__(10);\n// tslint:disable:no-bitwise\nfunction numBitsDiffering(x, y) {\n var z = x ^ y;\n var bitCount = 0;\n while (z) {\n bitCount++;\n z &= z - 1;\n }\n return bitCount;\n}\nfunction pushBit(bit, byte) {\n return (byte << 1) | bit;\n}\n// tslint:enable:no-bitwise\nvar FORMAT_INFO_TABLE = [\n { bits: 0x5412, formatInfo: { errorCorrectionLevel: 1, dataMask: 0 } },\n { bits: 0x5125, formatInfo: { errorCorrectionLevel: 1, dataMask: 1 } },\n { bits: 0x5E7C, formatInfo: { errorCorrectionLevel: 1, dataMask: 2 } },\n { bits: 0x5B4B, formatInfo: { errorCorrectionLevel: 1, dataMask: 3 } },\n { bits: 0x45F9, formatInfo: { errorCorrectionLevel: 1, dataMask: 4 } },\n { bits: 0x40CE, formatInfo: { errorCorrectionLevel: 1, dataMask: 5 } },\n { bits: 0x4F97, formatInfo: { errorCorrectionLevel: 1, dataMask: 6 } },\n { bits: 0x4AA0, formatInfo: { errorCorrectionLevel: 1, dataMask: 7 } },\n { bits: 0x77C4, formatInfo: { errorCorrectionLevel: 0, dataMask: 0 } },\n { bits: 0x72F3, formatInfo: { errorCorrectionLevel: 0, dataMask: 1 } },\n { bits: 0x7DAA, formatInfo: { errorCorrectionLevel: 0, dataMask: 2 } },\n { bits: 0x789D, formatInfo: { errorCorrectionLevel: 0, dataMask: 3 } },\n { bits: 0x662F, formatInfo: { errorCorrectionLevel: 0, dataMask: 4 } },\n { bits: 0x6318, formatInfo: { errorCorrectionLevel: 0, dataMask: 5 } },\n { bits: 0x6C41, formatInfo: { errorCorrectionLevel: 0, dataMask: 6 } },\n { bits: 0x6976, formatInfo: { errorCorrectionLevel: 0, dataMask: 7 } },\n { bits: 0x1689, formatInfo: { errorCorrectionLevel: 3, dataMask: 0 } },\n { bits: 0x13BE, formatInfo: { errorCorrectionLevel: 3, dataMask: 1 } },\n { bits: 0x1CE7, formatInfo: { errorCorrectionLevel: 3, dataMask: 2 } },\n { bits: 0x19D0, formatInfo: { errorCorrectionLevel: 3, dataMask: 3 } },\n { bits: 0x0762, formatInfo: { errorCorrectionLevel: 3, dataMask: 4 } },\n { bits: 0x0255, formatInfo: { errorCorrectionLevel: 3, dataMask: 5 } },\n { bits: 0x0D0C, formatInfo: { errorCorrectionLevel: 3, dataMask: 6 } },\n { bits: 0x083B, formatInfo: { errorCorrectionLevel: 3, dataMask: 7 } },\n { bits: 0x355F, formatInfo: { errorCorrectionLevel: 2, dataMask: 0 } },\n { bits: 0x3068, formatInfo: { errorCorrectionLevel: 2, dataMask: 1 } },\n { bits: 0x3F31, formatInfo: { errorCorrectionLevel: 2, dataMask: 2 } },\n { bits: 0x3A06, formatInfo: { errorCorrectionLevel: 2, dataMask: 3 } },\n { bits: 0x24B4, formatInfo: { errorCorrectionLevel: 2, dataMask: 4 } },\n { bits: 0x2183, formatInfo: { errorCorrectionLevel: 2, dataMask: 5 } },\n { bits: 0x2EDA, formatInfo: { errorCorrectionLevel: 2, dataMask: 6 } },\n { bits: 0x2BED, formatInfo: { errorCorrectionLevel: 2, dataMask: 7 } },\n];\nvar DATA_MASKS = [\n function (p) { return ((p.y + p.x) % 2) === 0; },\n function (p) { return (p.y % 2) === 0; },\n function (p) { return p.x % 3 === 0; },\n function (p) { return (p.y + p.x) % 3 === 0; },\n function (p) { return (Math.floor(p.y / 2) + Math.floor(p.x / 3)) % 2 === 0; },\n function (p) { return ((p.x * p.y) % 2) + ((p.x * p.y) % 3) === 0; },\n function (p) { return ((((p.y * p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },\n function (p) { return ((((p.y + p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },\n];\nfunction buildFunctionPatternMask(version) {\n var dimension = 17 + 4 * version.versionNumber;\n var matrix = BitMatrix_1.BitMatrix.createEmpty(dimension, dimension);\n matrix.setRegion(0, 0, 9, 9, true); // Top left finder pattern + separator + format\n matrix.setRegion(dimension - 8, 0, 8, 9, true); // Top right finder pattern + separator + format\n matrix.setRegion(0, dimension - 8, 9, 8, true); // Bottom left finder pattern + separator + format\n // Alignment patterns\n for (var _i = 0, _a = version.alignmentPatternCenters; _i < _a.length; _i++) {\n var x = _a[_i];\n for (var _b = 0, _c = version.alignmentPatternCenters; _b < _c.length; _b++) {\n var y = _c[_b];\n if (!(x === 6 && y === 6 || x === 6 && y === dimension - 7 || x === dimension - 7 && y === 6)) {\n matrix.setRegion(x - 2, y - 2, 5, 5, true);\n }\n }\n }\n matrix.setRegion(6, 9, 1, dimension - 17, true); // Vertical timing pattern\n matrix.setRegion(9, 6, dimension - 17, 1, true); // Horizontal timing pattern\n if (version.versionNumber > 6) {\n matrix.setRegion(dimension - 11, 0, 3, 6, true); // Version info, top right\n matrix.setRegion(0, dimension - 11, 6, 3, true); // Version info, bottom left\n }\n return matrix;\n}\nfunction readCodewords(matrix, version, formatInfo) {\n var dataMask = DATA_MASKS[formatInfo.dataMask];\n var dimension = matrix.height;\n var functionPatternMask = buildFunctionPatternMask(version);\n var codewords = [];\n var currentByte = 0;\n var bitsRead = 0;\n // Read columns in pairs, from right to left\n var readingUp = true;\n for (var columnIndex = dimension - 1; columnIndex > 0; columnIndex -= 2) {\n if (columnIndex === 6) { // Skip whole column with vertical alignment pattern;\n columnIndex--;\n }\n for (var i = 0; i < dimension; i++) {\n var y = readingUp ? dimension - 1 - i : i;\n for (var columnOffset = 0; columnOffset < 2; columnOffset++) {\n var x = columnIndex - columnOffset;\n if (!functionPatternMask.get(x, y)) {\n bitsRead++;\n var bit = matrix.get(x, y);\n if (dataMask({ y: y, x: x })) {\n bit = !bit;\n }\n currentByte = pushBit(bit, currentByte);\n if (bitsRead === 8) { // Whole bytes\n codewords.push(currentByte);\n bitsRead = 0;\n currentByte = 0;\n }\n }\n }\n }\n readingUp = !readingUp;\n }\n return codewords;\n}\nfunction readVersion(matrix) {\n var dimension = matrix.height;\n var provisionalVersion = Math.floor((dimension - 17) / 4);\n if (provisionalVersion <= 6) { // 6 and under dont have version info in the QR code\n return version_1.VERSIONS[provisionalVersion - 1];\n }\n var topRightVersionBits = 0;\n for (var y = 5; y >= 0; y--) {\n for (var x = dimension - 9; x >= dimension - 11; x--) {\n topRightVersionBits = pushBit(matrix.get(x, y), topRightVersionBits);\n }\n }\n var bottomLeftVersionBits = 0;\n for (var x = 5; x >= 0; x--) {\n for (var y = dimension - 9; y >= dimension - 11; y--) {\n bottomLeftVersionBits = pushBit(matrix.get(x, y), bottomLeftVersionBits);\n }\n }\n var bestDifference = Infinity;\n var bestVersion;\n for (var _i = 0, VERSIONS_1 = version_1.VERSIONS; _i < VERSIONS_1.length; _i++) {\n var version = VERSIONS_1[_i];\n if (version.infoBits === topRightVersionBits || version.infoBits === bottomLeftVersionBits) {\n return version;\n }\n var difference = numBitsDiffering(topRightVersionBits, version.infoBits);\n if (difference < bestDifference) {\n bestVersion = version;\n bestDifference = difference;\n }\n difference = numBitsDiffering(bottomLeftVersionBits, version.infoBits);\n if (difference < bestDifference) {\n bestVersion = version;\n bestDifference = difference;\n }\n }\n // We can tolerate up to 3 bits of error since no two version info codewords will\n // differ in less than 8 bits.\n if (bestDifference <= 3) {\n return bestVersion;\n }\n}\nfunction readFormatInformation(matrix) {\n var topLeftFormatInfoBits = 0;\n for (var x = 0; x <= 8; x++) {\n if (x !== 6) { // Skip timing pattern bit\n topLeftFormatInfoBits = pushBit(matrix.get(x, 8), topLeftFormatInfoBits);\n }\n }\n for (var y = 7; y >= 0; y--) {\n if (y !== 6) { // Skip timing pattern bit\n topLeftFormatInfoBits = pushBit(matrix.get(8, y), topLeftFormatInfoBits);\n }\n }\n var dimension = matrix.height;\n var topRightBottomRightFormatInfoBits = 0;\n for (var y = dimension - 1; y >= dimension - 7; y--) { // bottom left\n topRightBottomRightFormatInfoBits = pushBit(matrix.get(8, y), topRightBottomRightFormatInfoBits);\n }\n for (var x = dimension - 8; x < dimension; x++) { // top right\n topRightBottomRightFormatInfoBits = pushBit(matrix.get(x, 8), topRightBottomRightFormatInfoBits);\n }\n var bestDifference = Infinity;\n var bestFormatInfo = null;\n for (var _i = 0, FORMAT_INFO_TABLE_1 = FORMAT_INFO_TABLE; _i < FORMAT_INFO_TABLE_1.length; _i++) {\n var _a = FORMAT_INFO_TABLE_1[_i], bits = _a.bits, formatInfo = _a.formatInfo;\n if (bits === topLeftFormatInfoBits || bits === topRightBottomRightFormatInfoBits) {\n return formatInfo;\n }\n var difference = numBitsDiffering(topLeftFormatInfoBits, bits);\n if (difference < bestDifference) {\n bestFormatInfo = formatInfo;\n bestDifference = difference;\n }\n if (topLeftFormatInfoBits !== topRightBottomRightFormatInfoBits) { // also try the other option\n difference = numBitsDiffering(topRightBottomRightFormatInfoBits, bits);\n if (difference < bestDifference) {\n bestFormatInfo = formatInfo;\n bestDifference = difference;\n }\n }\n }\n // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match\n if (bestDifference <= 3) {\n return bestFormatInfo;\n }\n return null;\n}\nfunction getDataBlocks(codewords, version, ecLevel) {\n var ecInfo = version.errorCorrectionLevels[ecLevel];\n var dataBlocks = [];\n var totalCodewords = 0;\n ecInfo.ecBlocks.forEach(function (block) {\n for (var i = 0; i < block.numBlocks; i++) {\n dataBlocks.push({ numDataCodewords: block.dataCodewordsPerBlock, codewords: [] });\n totalCodewords += block.dataCodewordsPerBlock + ecInfo.ecCodewordsPerBlock;\n }\n });\n // In some cases the QR code will be malformed enough that we pull off more or less than we should.\n // If we pull off less there's nothing we can do.\n // If we pull off more we can safely truncate\n if (codewords.length < totalCodewords) {\n return null;\n }\n codewords = codewords.slice(0, totalCodewords);\n var shortBlockSize = ecInfo.ecBlocks[0].dataCodewordsPerBlock;\n // Pull codewords to fill the blocks up to the minimum size\n for (var i = 0; i < shortBlockSize; i++) {\n for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {\n var dataBlock = dataBlocks_1[_i];\n dataBlock.codewords.push(codewords.shift());\n }\n }\n // If there are any large blocks, pull codewords to fill the last element of those\n if (ecInfo.ecBlocks.length > 1) {\n var smallBlockCount = ecInfo.ecBlocks[0].numBlocks;\n var largeBlockCount = ecInfo.ecBlocks[1].numBlocks;\n for (var i = 0; i < largeBlockCount; i++) {\n dataBlocks[smallBlockCount + i].codewords.push(codewords.shift());\n }\n }\n // Add the rest of the codewords to the blocks. These are the error correction codewords.\n while (codewords.length > 0) {\n for (var _a = 0, dataBlocks_2 = dataBlocks; _a < dataBlocks_2.length; _a++) {\n var dataBlock = dataBlocks_2[_a];\n dataBlock.codewords.push(codewords.shift());\n }\n }\n return dataBlocks;\n}\nfunction decodeMatrix(matrix) {\n var version = readVersion(matrix);\n if (!version) {\n return null;\n }\n var formatInfo = readFormatInformation(matrix);\n if (!formatInfo) {\n return null;\n }\n var codewords = readCodewords(matrix, version, formatInfo);\n var dataBlocks = getDataBlocks(codewords, version, formatInfo.errorCorrectionLevel);\n if (!dataBlocks) {\n return null;\n }\n // Count total number of data bytes\n var totalBytes = dataBlocks.reduce(function (a, b) { return a + b.numDataCodewords; }, 0);\n var resultBytes = new Uint8ClampedArray(totalBytes);\n var resultIndex = 0;\n for (var _i = 0, dataBlocks_3 = dataBlocks; _i < dataBlocks_3.length; _i++) {\n var dataBlock = dataBlocks_3[_i];\n var correctedBytes = reedsolomon_1.decode(dataBlock.codewords, dataBlock.codewords.length - dataBlock.numDataCodewords);\n if (!correctedBytes) {\n return null;\n }\n for (var i = 0; i < dataBlock.numDataCodewords; i++) {\n resultBytes[resultIndex++] = correctedBytes[i];\n }\n }\n try {\n return decodeData_1.decode(resultBytes, version.versionNumber);\n }\n catch (_a) {\n return null;\n }\n}\nfunction decode(matrix) {\n if (matrix == null) {\n return null;\n }\n var result = decodeMatrix(matrix);\n if (result) {\n return result;\n }\n // Decoding didn't work, try mirroring the QR across the topLeft -> bottomRight line.\n for (var x = 0; x < matrix.width; x++) {\n for (var y = x + 1; y < matrix.height; y++) {\n if (matrix.get(x, y) !== matrix.get(y, x)) {\n matrix.set(x, y, !matrix.get(x, y));\n matrix.set(y, x, !matrix.get(y, x));\n }\n }\n }\n return decodeMatrix(matrix);\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// tslint:disable:no-bitwise\nvar BitStream_1 = __webpack_require__(7);\nvar shiftJISTable_1 = __webpack_require__(8);\nvar Mode;\n(function (Mode) {\n Mode[\"Numeric\"] = \"numeric\";\n Mode[\"Alphanumeric\"] = \"alphanumeric\";\n Mode[\"Byte\"] = \"byte\";\n Mode[\"Kanji\"] = \"kanji\";\n Mode[\"ECI\"] = \"eci\";\n})(Mode = exports.Mode || (exports.Mode = {}));\nvar ModeByte;\n(function (ModeByte) {\n ModeByte[ModeByte[\"Terminator\"] = 0] = \"Terminator\";\n ModeByte[ModeByte[\"Numeric\"] = 1] = \"Numeric\";\n ModeByte[ModeByte[\"Alphanumeric\"] = 2] = \"Alphanumeric\";\n ModeByte[ModeByte[\"Byte\"] = 4] = \"Byte\";\n ModeByte[ModeByte[\"Kanji\"] = 8] = \"Kanji\";\n ModeByte[ModeByte[\"ECI\"] = 7] = \"ECI\";\n // StructuredAppend = 0x3,\n // FNC1FirstPosition = 0x5,\n // FNC1SecondPosition = 0x9,\n})(ModeByte || (ModeByte = {}));\nfunction decodeNumeric(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [10, 12, 14][size];\n var length = stream.readBits(characterCountSize);\n // Read digits in groups of 3\n while (length >= 3) {\n var num = stream.readBits(10);\n if (num >= 1000) {\n throw new Error(\"Invalid numeric value above 999\");\n }\n var a = Math.floor(num / 100);\n var b = Math.floor(num / 10) % 10;\n var c = num % 10;\n bytes.push(48 + a, 48 + b, 48 + c);\n text += a.toString() + b.toString() + c.toString();\n length -= 3;\n }\n // If the number of digits aren't a multiple of 3, the remaining digits are special cased.\n if (length === 2) {\n var num = stream.readBits(7);\n if (num >= 100) {\n throw new Error(\"Invalid numeric value above 99\");\n }\n var a = Math.floor(num / 10);\n var b = num % 10;\n bytes.push(48 + a, 48 + b);\n text += a.toString() + b.toString();\n }\n else if (length === 1) {\n var num = stream.readBits(4);\n if (num >= 10) {\n throw new Error(\"Invalid numeric value above 9\");\n }\n bytes.push(48 + num);\n text += num.toString();\n }\n return { bytes: bytes, text: text };\n}\nvar AlphanumericCharacterCodes = [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\",\n \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \" \", \"$\", \"%\", \"*\", \"+\", \"-\", \".\", \"/\", \":\",\n];\nfunction decodeAlphanumeric(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [9, 11, 13][size];\n var length = stream.readBits(characterCountSize);\n while (length >= 2) {\n var v = stream.readBits(11);\n var a = Math.floor(v / 45);\n var b = v % 45;\n bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0));\n text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];\n length -= 2;\n }\n if (length === 1) {\n var a = stream.readBits(6);\n bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0));\n text += AlphanumericCharacterCodes[a];\n }\n return { bytes: bytes, text: text };\n}\nfunction decodeByte(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [8, 16, 16][size];\n var length = stream.readBits(characterCountSize);\n for (var i = 0; i < length; i++) {\n var b = stream.readBits(8);\n bytes.push(b);\n }\n try {\n text += decodeURIComponent(bytes.map(function (b) { return \"%\" + (\"0\" + b.toString(16)).substr(-2); }).join(\"\"));\n }\n catch (_a) {\n // failed to decode\n }\n return { bytes: bytes, text: text };\n}\nfunction decodeKanji(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [8, 10, 12][size];\n var length = stream.readBits(characterCountSize);\n for (var i = 0; i < length; i++) {\n var k = stream.readBits(13);\n var c = (Math.floor(k / 0xC0) << 8) | (k % 0xC0);\n if (c < 0x1F00) {\n c += 0x8140;\n }\n else {\n c += 0xC140;\n }\n bytes.push(c >> 8, c & 0xFF);\n text += String.fromCharCode(shiftJISTable_1.shiftJISTable[c]);\n }\n return { bytes: bytes, text: text };\n}\nfunction decode(data, version) {\n var _a, _b, _c, _d;\n var stream = new BitStream_1.BitStream(data);\n // There are 3 'sizes' based on the version. 1-9 is small (0), 10-26 is medium (1) and 27-40 is large (2).\n var size = version <= 9 ? 0 : version <= 26 ? 1 : 2;\n var result = {\n text: \"\",\n bytes: [],\n chunks: [],\n version: version,\n };\n while (stream.available() >= 4) {\n var mode = stream.readBits(4);\n if (mode === ModeByte.Terminator) {\n return result;\n }\n else if (mode === ModeByte.ECI) {\n if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(7),\n });\n }\n else if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(14),\n });\n }\n else if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(21),\n });\n }\n else {\n // ECI data seems corrupted\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: -1,\n });\n }\n }\n else if (mode === ModeByte.Numeric) {\n var numericResult = decodeNumeric(stream, size);\n result.text += numericResult.text;\n (_a = result.bytes).push.apply(_a, numericResult.bytes);\n result.chunks.push({\n type: Mode.Numeric,\n text: numericResult.text,\n });\n }\n else if (mode === ModeByte.Alphanumeric) {\n var alphanumericResult = decodeAlphanumeric(stream, size);\n result.text += alphanumericResult.text;\n (_b = result.bytes).push.apply(_b, alphanumericResult.bytes);\n result.chunks.push({\n type: Mode.Alphanumeric,\n text: alphanumericResult.text,\n });\n }\n else if (mode === ModeByte.Byte) {\n var byteResult = decodeByte(stream, size);\n result.text += byteResult.text;\n (_c = result.bytes).push.apply(_c, byteResult.bytes);\n result.chunks.push({\n type: Mode.Byte,\n bytes: byteResult.bytes,\n text: byteResult.text,\n });\n }\n else if (mode === ModeByte.Kanji) {\n var kanjiResult = decodeKanji(stream, size);\n result.text += kanjiResult.text;\n (_d = result.bytes).push.apply(_d, kanjiResult.bytes);\n result.chunks.push({\n type: Mode.Kanji,\n bytes: kanjiResult.bytes,\n text: kanjiResult.text,\n });\n }\n }\n // If there is no data left, or the remaining bits are all 0, then that counts as a termination marker\n if (stream.available() === 0 || stream.readBits(stream.available()) === 0) {\n return result;\n }\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// tslint:disable:no-bitwise\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitStream = /** @class */ (function () {\n function BitStream(bytes) {\n this.byteOffset = 0;\n this.bitOffset = 0;\n this.bytes = bytes;\n }\n BitStream.prototype.readBits = function (numBits) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new Error(\"Cannot read \" + numBits.toString() + \" bits\");\n }\n var result = 0;\n // First, read remainder from current byte\n if (this.bitOffset > 0) {\n var bitsLeft = 8 - this.bitOffset;\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n var bitsToNotRead = bitsLeft - toRead;\n var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n result = (this.bytes[this.byteOffset] & mask) >> bitsToNotRead;\n numBits -= toRead;\n this.bitOffset += toRead;\n if (this.bitOffset === 8) {\n this.bitOffset = 0;\n this.byteOffset++;\n }\n }\n // Next read whole bytes\n if (numBits > 0) {\n while (numBits >= 8) {\n result = (result << 8) | (this.bytes[this.byteOffset] & 0xFF);\n this.byteOffset++;\n numBits -= 8;\n }\n // Finally read a partial byte\n if (numBits > 0) {\n var bitsToNotRead = 8 - numBits;\n var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n result = (result << numBits) | ((this.bytes[this.byteOffset] & mask) >> bitsToNotRead);\n this.bitOffset += numBits;\n }\n }\n return result;\n };\n BitStream.prototype.available = function () {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n };\n return BitStream;\n}());\nexports.BitStream = BitStream;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shiftJISTable = {\n 0x20: 0x0020,\n 0x21: 0x0021,\n 0x22: 0x0022,\n 0x23: 0x0023,\n 0x24: 0x0024,\n 0x25: 0x0025,\n 0x26: 0x0026,\n 0x27: 0x0027,\n 0x28: 0x0028,\n 0x29: 0x0029,\n 0x2A: 0x002A,\n 0x2B: 0x002B,\n 0x2C: 0x002C,\n 0x2D: 0x002D,\n 0x2E: 0x002E,\n 0x2F: 0x002F,\n 0x30: 0x0030,\n 0x31: 0x0031,\n 0x32: 0x0032,\n 0x33: 0x0033,\n 0x34: 0x0034,\n 0x35: 0x0035,\n 0x36: 0x0036,\n 0x37: 0x0037,\n 0x38: 0x0038,\n 0x39: 0x0039,\n 0x3A: 0x003A,\n 0x3B: 0x003B,\n 0x3C: 0x003C,\n 0x3D: 0x003D,\n 0x3E: 0x003E,\n 0x3F: 0x003F,\n 0x40: 0x0040,\n 0x41: 0x0041,\n 0x42: 0x0042,\n 0x43: 0x0043,\n 0x44: 0x0044,\n 0x45: 0x0045,\n 0x46: 0x0046,\n 0x47: 0x0047,\n 0x48: 0x0048,\n 0x49: 0x0049,\n 0x4A: 0x004A,\n 0x4B: 0x004B,\n 0x4C: 0x004C,\n 0x4D: 0x004D,\n 0x4E: 0x004E,\n 0x4F: 0x004F,\n 0x50: 0x0050,\n 0x51: 0x0051,\n 0x52: 0x0052,\n 0x53: 0x0053,\n 0x54: 0x0054,\n 0x55: 0x0055,\n 0x56: 0x0056,\n 0x57: 0x0057,\n 0x58: 0x0058,\n 0x59: 0x0059,\n 0x5A: 0x005A,\n 0x5B: 0x005B,\n 0x5C: 0x00A5,\n 0x5D: 0x005D,\n 0x5E: 0x005E,\n 0x5F: 0x005F,\n 0x60: 0x0060,\n 0x61: 0x0061,\n 0x62: 0x0062,\n 0x63: 0x0063,\n 0x64: 0x0064,\n 0x65: 0x0065,\n 0x66: 0x0066,\n 0x67: 0x0067,\n 0x68: 0x0068,\n 0x69: 0x0069,\n 0x6A: 0x006A,\n 0x6B: 0x006B,\n 0x6C: 0x006C,\n 0x6D: 0x006D,\n 0x6E: 0x006E,\n 0x6F: 0x006F,\n 0x70: 0x0070,\n 0x71: 0x0071,\n 0x72: 0x0072,\n 0x73: 0x0073,\n 0x74: 0x0074,\n 0x75: 0x0075,\n 0x76: 0x0076,\n 0x77: 0x0077,\n 0x78: 0x0078,\n 0x79: 0x0079,\n 0x7A: 0x007A,\n 0x7B: 0x007B,\n 0x7C: 0x007C,\n 0x7D: 0x007D,\n 0x7E: 0x203E,\n 0x8140: 0x3000,\n 0x8141: 0x3001,\n 0x8142: 0x3002,\n 0x8143: 0xFF0C,\n 0x8144: 0xFF0E,\n 0x8145: 0x30FB,\n 0x8146: 0xFF1A,\n 0x8147: 0xFF1B,\n 0x8148: 0xFF1F,\n 0x8149: 0xFF01,\n 0x814A: 0x309B,\n 0x814B: 0x309C,\n 0x814C: 0x00B4,\n 0x814D: 0xFF40,\n 0x814E: 0x00A8,\n 0x814F: 0xFF3E,\n 0x8150: 0xFFE3,\n 0x8151: 0xFF3F,\n 0x8152: 0x30FD,\n 0x8153: 0x30FE,\n 0x8154: 0x309D,\n 0x8155: 0x309E,\n 0x8156: 0x3003,\n 0x8157: 0x4EDD,\n 0x8158: 0x3005,\n 0x8159: 0x3006,\n 0x815A: 0x3007,\n 0x815B: 0x30FC,\n 0x815C: 0x2015,\n 0x815D: 0x2010,\n 0x815E: 0xFF0F,\n 0x815F: 0x005C,\n 0x8160: 0x301C,\n 0x8161: 0x2016,\n 0x8162: 0xFF5C,\n 0x8163: 0x2026,\n 0x8164: 0x2025,\n 0x8165: 0x2018,\n 0x8166: 0x2019,\n 0x8167: 0x201C,\n 0x8168: 0x201D,\n 0x8169: 0xFF08,\n 0x816A: 0xFF09,\n 0x816B: 0x3014,\n 0x816C: 0x3015,\n 0x816D: 0xFF3B,\n 0x816E: 0xFF3D,\n 0x816F: 0xFF5B,\n 0x8170: 0xFF5D,\n 0x8171: 0x3008,\n 0x8172: 0x3009,\n 0x8173: 0x300A,\n 0x8174: 0x300B,\n 0x8175: 0x300C,\n 0x8176: 0x300D,\n 0x8177: 0x300E,\n 0x8178: 0x300F,\n 0x8179: 0x3010,\n 0x817A: 0x3011,\n 0x817B: 0xFF0B,\n 0x817C: 0x2212,\n 0x817D: 0x00B1,\n 0x817E: 0x00D7,\n 0x8180: 0x00F7,\n 0x8181: 0xFF1D,\n 0x8182: 0x2260,\n 0x8183: 0xFF1C,\n 0x8184: 0xFF1E,\n 0x8185: 0x2266,\n 0x8186: 0x2267,\n 0x8187: 0x221E,\n 0x8188: 0x2234,\n 0x8189: 0x2642,\n 0x818A: 0x2640,\n 0x818B: 0x00B0,\n 0x818C: 0x2032,\n 0x818D: 0x2033,\n 0x818E: 0x2103,\n 0x818F: 0xFFE5,\n 0x8190: 0xFF04,\n 0x8191: 0x00A2,\n 0x8192: 0x00A3,\n 0x8193: 0xFF05,\n 0x8194: 0xFF03,\n 0x8195: 0xFF06,\n 0x8196: 0xFF0A,\n 0x8197: 0xFF20,\n 0x8198: 0x00A7,\n 0x8199: 0x2606,\n 0x819A: 0x2605,\n 0x819B: 0x25CB,\n 0x819C: 0x25CF,\n 0x819D: 0x25CE,\n 0x819E: 0x25C7,\n 0x819F: 0x25C6,\n 0x81A0: 0x25A1,\n 0x81A1: 0x25A0,\n 0x81A2: 0x25B3,\n 0x81A3: 0x25B2,\n 0x81A4: 0x25BD,\n 0x81A5: 0x25BC,\n 0x81A6: 0x203B,\n 0x81A7: 0x3012,\n 0x81A8: 0x2192,\n 0x81A9: 0x2190,\n 0x81AA: 0x2191,\n 0x81AB: 0x2193,\n 0x81AC: 0x3013,\n 0x81B8: 0x2208,\n 0x81B9: 0x220B,\n 0x81BA: 0x2286,\n 0x81BB: 0x2287,\n 0x81BC: 0x2282,\n 0x81BD: 0x2283,\n 0x81BE: 0x222A,\n 0x81BF: 0x2229,\n 0x81C8: 0x2227,\n 0x81C9: 0x2228,\n 0x81CA: 0x00AC,\n 0x81CB: 0x21D2,\n 0x81CC: 0x21D4,\n 0x81CD: 0x2200,\n 0x81CE: 0x2203,\n 0x81DA: 0x2220,\n 0x81DB: 0x22A5,\n 0x81DC: 0x2312,\n 0x81DD: 0x2202,\n 0x81DE: 0x2207,\n 0x81DF: 0x2261,\n 0x81E0: 0x2252,\n 0x81E1: 0x226A,\n 0x81E2: 0x226B,\n 0x81E3: 0x221A,\n 0x81E4: 0x223D,\n 0x81E5: 0x221D,\n 0x81E6: 0x2235,\n 0x81E7: 0x222B,\n 0x81E8: 0x222C,\n 0x81F0: 0x212B,\n 0x81F1: 0x2030,\n 0x81F2: 0x266F,\n 0x81F3: 0x266D,\n 0x81F4: 0x266A,\n 0x81F5: 0x2020,\n 0x81F6: 0x2021,\n 0x81F7: 0x00B6,\n 0x81FC: 0x25EF,\n 0x824F: 0xFF10,\n 0x8250: 0xFF11,\n 0x8251: 0xFF12,\n 0x8252: 0xFF13,\n 0x8253: 0xFF14,\n 0x8254: 0xFF15,\n 0x8255: 0xFF16,\n 0x8256: 0xFF17,\n 0x8257: 0xFF18,\n 0x8258: 0xFF19,\n 0x8260: 0xFF21,\n 0x8261: 0xFF22,\n 0x8262: 0xFF23,\n 0x8263: 0xFF24,\n 0x8264: 0xFF25,\n 0x8265: 0xFF26,\n 0x8266: 0xFF27,\n 0x8267: 0xFF28,\n 0x8268: 0xFF29,\n 0x8269: 0xFF2A,\n 0x826A: 0xFF2B,\n 0x826B: 0xFF2C,\n 0x826C: 0xFF2D,\n 0x826D: 0xFF2E,\n 0x826E: 0xFF2F,\n 0x826F: 0xFF30,\n 0x8270: 0xFF31,\n 0x8271: 0xFF32,\n 0x8272: 0xFF33,\n 0x8273: 0xFF34,\n 0x8274: 0xFF35,\n 0x8275: 0xFF36,\n 0x8276: 0xFF37,\n 0x8277: 0xFF38,\n 0x8278: 0xFF39,\n 0x8279: 0xFF3A,\n 0x8281: 0xFF41,\n 0x8282: 0xFF42,\n 0x8283: 0xFF43,\n 0x8284: 0xFF44,\n 0x8285: 0xFF45,\n 0x8286: 0xFF46,\n 0x8287: 0xFF47,\n 0x8288: 0xFF48,\n 0x8289: 0xFF49,\n 0x828A: 0xFF4A,\n 0x828B: 0xFF4B,\n 0x828C: 0xFF4C,\n 0x828D: 0xFF4D,\n 0x828E: 0xFF4E,\n 0x828F: 0xFF4F,\n 0x8290: 0xFF50,\n 0x8291: 0xFF51,\n 0x8292: 0xFF52,\n 0x8293: 0xFF53,\n 0x8294: 0xFF54,\n 0x8295: 0xFF55,\n 0x8296: 0xFF56,\n 0x8297: 0xFF57,\n 0x8298: 0xFF58,\n 0x8299: 0xFF59,\n 0x829A: 0xFF5A,\n 0x829F: 0x3041,\n 0x82A0: 0x3042,\n 0x82A1: 0x3043,\n 0x82A2: 0x3044,\n 0x82A3: 0x3045,\n 0x82A4: 0x3046,\n 0x82A5: 0x3047,\n 0x82A6: 0x3048,\n 0x82A7: 0x3049,\n 0x82A8: 0x304A,\n 0x82A9: 0x304B,\n 0x82AA: 0x304C,\n 0x82AB: 0x304D,\n 0x82AC: 0x304E,\n 0x82AD: 0x304F,\n 0x82AE: 0x3050,\n 0x82AF: 0x3051,\n 0x82B0: 0x3052,\n 0x82B1: 0x3053,\n 0x82B2: 0x3054,\n 0x82B3: 0x3055,\n 0x82B4: 0x3056,\n 0x82B5: 0x3057,\n 0x82B6: 0x3058,\n 0x82B7: 0x3059,\n 0x82B8: 0x305A,\n 0x82B9: 0x305B,\n 0x82BA: 0x305C,\n 0x82BB: 0x305D,\n 0x82BC: 0x305E,\n 0x82BD: 0x305F,\n 0x82BE: 0x3060,\n 0x82BF: 0x3061,\n 0x82C0: 0x3062,\n 0x82C1: 0x3063,\n 0x82C2: 0x3064,\n 0x82C3: 0x3065,\n 0x82C4: 0x3066,\n 0x82C5: 0x3067,\n 0x82C6: 0x3068,\n 0x82C7: 0x3069,\n 0x82C8: 0x306A,\n 0x82C9: 0x306B,\n 0x82CA: 0x306C,\n 0x82CB: 0x306D,\n 0x82CC: 0x306E,\n 0x82CD: 0x306F,\n 0x82CE: 0x3070,\n 0x82CF: 0x3071,\n 0x82D0: 0x3072,\n 0x82D1: 0x3073,\n 0x82D2: 0x3074,\n 0x82D3: 0x3075,\n 0x82D4: 0x3076,\n 0x82D5: 0x3077,\n 0x82D6: 0x3078,\n 0x82D7: 0x3079,\n 0x82D8: 0x307A,\n 0x82D9: 0x307B,\n 0x82DA: 0x307C,\n 0x82DB: 0x307D,\n 0x82DC: 0x307E,\n 0x82DD: 0x307F,\n 0x82DE: 0x3080,\n 0x82DF: 0x3081,\n 0x82E0: 0x3082,\n 0x82E1: 0x3083,\n 0x82E2: 0x3084,\n 0x82E3: 0x3085,\n 0x82E4: 0x3086,\n 0x82E5: 0x3087,\n 0x82E6: 0x3088,\n 0x82E7: 0x3089,\n 0x82E8: 0x308A,\n 0x82E9: 0x308B,\n 0x82EA: 0x308C,\n 0x82EB: 0x308D,\n 0x82EC: 0x308E,\n 0x82ED: 0x308F,\n 0x82EE: 0x3090,\n 0x82EF: 0x3091,\n 0x82F0: 0x3092,\n 0x82F1: 0x3093,\n 0x8340: 0x30A1,\n 0x8341: 0x30A2,\n 0x8342: 0x30A3,\n 0x8343: 0x30A4,\n 0x8344: 0x30A5,\n 0x8345: 0x30A6,\n 0x8346: 0x30A7,\n 0x8347: 0x30A8,\n 0x8348: 0x30A9,\n 0x8349: 0x30AA,\n 0x834A: 0x30AB,\n 0x834B: 0x30AC,\n 0x834C: 0x30AD,\n 0x834D: 0x30AE,\n 0x834E: 0x30AF,\n 0x834F: 0x30B0,\n 0x8350: 0x30B1,\n 0x8351: 0x30B2,\n 0x8352: 0x30B3,\n 0x8353: 0x30B4,\n 0x8354: 0x30B5,\n 0x8355: 0x30B6,\n 0x8356: 0x30B7,\n 0x8357: 0x30B8,\n 0x8358: 0x30B9,\n 0x8359: 0x30BA,\n 0x835A: 0x30BB,\n 0x835B: 0x30BC,\n 0x835C: 0x30BD,\n 0x835D: 0x30BE,\n 0x835E: 0x30BF,\n 0x835F: 0x30C0,\n 0x8360: 0x30C1,\n 0x8361: 0x30C2,\n 0x8362: 0x30C3,\n 0x8363: 0x30C4,\n 0x8364: 0x30C5,\n 0x8365: 0x30C6,\n 0x8366: 0x30C7,\n 0x8367: 0x30C8,\n 0x8368: 0x30C9,\n 0x8369: 0x30CA,\n 0x836A: 0x30CB,\n 0x836B: 0x30CC,\n 0x836C: 0x30CD,\n 0x836D: 0x30CE,\n 0x836E: 0x30CF,\n 0x836F: 0x30D0,\n 0x8370: 0x30D1,\n 0x8371: 0x30D2,\n 0x8372: 0x30D3,\n 0x8373: 0x30D4,\n 0x8374: 0x30D5,\n 0x8375: 0x30D6,\n 0x8376: 0x30D7,\n 0x8377: 0x30D8,\n 0x8378: 0x30D9,\n 0x8379: 0x30DA,\n 0x837A: 0x30DB,\n 0x837B: 0x30DC,\n 0x837C: 0x30DD,\n 0x837D: 0x30DE,\n 0x837E: 0x30DF,\n 0x8380: 0x30E0,\n 0x8381: 0x30E1,\n 0x8382: 0x30E2,\n 0x8383: 0x30E3,\n 0x8384: 0x30E4,\n 0x8385: 0x30E5,\n 0x8386: 0x30E6,\n 0x8387: 0x30E7,\n 0x8388: 0x30E8,\n 0x8389: 0x30E9,\n 0x838A: 0x30EA,\n 0x838B: 0x30EB,\n 0x838C: 0x30EC,\n 0x838D: 0x30ED,\n 0x838E: 0x30EE,\n 0x838F: 0x30EF,\n 0x8390: 0x30F0,\n 0x8391: 0x30F1,\n 0x8392: 0x30F2,\n 0x8393: 0x30F3,\n 0x8394: 0x30F4,\n 0x8395: 0x30F5,\n 0x8396: 0x30F6,\n 0x839F: 0x0391,\n 0x83A0: 0x0392,\n 0x83A1: 0x0393,\n 0x83A2: 0x0394,\n 0x83A3: 0x0395,\n 0x83A4: 0x0396,\n 0x83A5: 0x0397,\n 0x83A6: 0x0398,\n 0x83A7: 0x0399,\n 0x83A8: 0x039A,\n 0x83A9: 0x039B,\n 0x83AA: 0x039C,\n 0x83AB: 0x039D,\n 0x83AC: 0x039E,\n 0x83AD: 0x039F,\n 0x83AE: 0x03A0,\n 0x83AF: 0x03A1,\n 0x83B0: 0x03A3,\n 0x83B1: 0x03A4,\n 0x83B2: 0x03A5,\n 0x83B3: 0x03A6,\n 0x83B4: 0x03A7,\n 0x83B5: 0x03A8,\n 0x83B6: 0x03A9,\n 0x83BF: 0x03B1,\n 0x83C0: 0x03B2,\n 0x83C1: 0x03B3,\n 0x83C2: 0x03B4,\n 0x83C3: 0x03B5,\n 0x83C4: 0x03B6,\n 0x83C5: 0x03B7,\n 0x83C6: 0x03B8,\n 0x83C7: 0x03B9,\n 0x83C8: 0x03BA,\n 0x83C9: 0x03BB,\n 0x83CA: 0x03BC,\n 0x83CB: 0x03BD,\n 0x83CC: 0x03BE,\n 0x83CD: 0x03BF,\n 0x83CE: 0x03C0,\n 0x83CF: 0x03C1,\n 0x83D0: 0x03C3,\n 0x83D1: 0x03C4,\n 0x83D2: 0x03C5,\n 0x83D3: 0x03C6,\n 0x83D4: 0x03C7,\n 0x83D5: 0x03C8,\n 0x83D6: 0x03C9,\n 0x8440: 0x0410,\n 0x8441: 0x0411,\n 0x8442: 0x0412,\n 0x8443: 0x0413,\n 0x8444: 0x0414,\n 0x8445: 0x0415,\n 0x8446: 0x0401,\n 0x8447: 0x0416,\n 0x8448: 0x0417,\n 0x8449: 0x0418,\n 0x844A: 0x0419,\n 0x844B: 0x041A,\n 0x844C: 0x041B,\n 0x844D: 0x041C,\n 0x844E: 0x041D,\n 0x844F: 0x041E,\n 0x8450: 0x041F,\n 0x8451: 0x0420,\n 0x8452: 0x0421,\n 0x8453: 0x0422,\n 0x8454: 0x0423,\n 0x8455: 0x0424,\n 0x8456: 0x0425,\n 0x8457: 0x0426,\n 0x8458: 0x0427,\n 0x8459: 0x0428,\n 0x845A: 0x0429,\n 0x845B: 0x042A,\n 0x845C: 0x042B,\n 0x845D: 0x042C,\n 0x845E: 0x042D,\n 0x845F: 0x042E,\n 0x8460: 0x042F,\n 0x8470: 0x0430,\n 0x8471: 0x0431,\n 0x8472: 0x0432,\n 0x8473: 0x0433,\n 0x8474: 0x0434,\n 0x8475: 0x0435,\n 0x8476: 0x0451,\n 0x8477: 0x0436,\n 0x8478: 0x0437,\n 0x8479: 0x0438,\n 0x847A: 0x0439,\n 0x847B: 0x043A,\n 0x847C: 0x043B,\n 0x847D: 0x043C,\n 0x847E: 0x043D,\n 0x8480: 0x043E,\n 0x8481: 0x043F,\n 0x8482: 0x0440,\n 0x8483: 0x0441,\n 0x8484: 0x0442,\n 0x8485: 0x0443,\n 0x8486: 0x0444,\n 0x8487: 0x0445,\n 0x8488: 0x0446,\n 0x8489: 0x0447,\n 0x848A: 0x0448,\n 0x848B: 0x0449,\n 0x848C: 0x044A,\n 0x848D: 0x044B,\n 0x848E: 0x044C,\n 0x848F: 0x044D,\n 0x8490: 0x044E,\n 0x8491: 0x044F,\n 0x849F: 0x2500,\n 0x84A0: 0x2502,\n 0x84A1: 0x250C,\n 0x84A2: 0x2510,\n 0x84A3: 0x2518,\n 0x84A4: 0x2514,\n 0x84A5: 0x251C,\n 0x84A6: 0x252C,\n 0x84A7: 0x2524,\n 0x84A8: 0x2534,\n 0x84A9: 0x253C,\n 0x84AA: 0x2501,\n 0x84AB: 0x2503,\n 0x84AC: 0x250F,\n 0x84AD: 0x2513,\n 0x84AE: 0x251B,\n 0x84AF: 0x2517,\n 0x84B0: 0x2523,\n 0x84B1: 0x2533,\n 0x84B2: 0x252B,\n 0x84B3: 0x253B,\n 0x84B4: 0x254B,\n 0x84B5: 0x2520,\n 0x84B6: 0x252F,\n 0x84B7: 0x2528,\n 0x84B8: 0x2537,\n 0x84B9: 0x253F,\n 0x84BA: 0x251D,\n 0x84BB: 0x2530,\n 0x84BC: 0x2525,\n 0x84BD: 0x2538,\n 0x84BE: 0x2542,\n 0x889F: 0x4E9C,\n 0x88A0: 0x5516,\n 0x88A1: 0x5A03,\n 0x88A2: 0x963F,\n 0x88A3: 0x54C0,\n 0x88A4: 0x611B,\n 0x88A5: 0x6328,\n 0x88A6: 0x59F6,\n 0x88A7: 0x9022,\n 0x88A8: 0x8475,\n 0x88A9: 0x831C,\n 0x88AA: 0x7A50,\n 0x88AB: 0x60AA,\n 0x88AC: 0x63E1,\n 0x88AD: 0x6E25,\n 0x88AE: 0x65ED,\n 0x88AF: 0x8466,\n 0x88B0: 0x82A6,\n 0x88B1: 0x9BF5,\n 0x88B2: 0x6893,\n 0x88B3: 0x5727,\n 0x88B4: 0x65A1,\n 0x88B5: 0x6271,\n 0x88B6: 0x5B9B,\n 0x88B7: 0x59D0,\n 0x88B8: 0x867B,\n 0x88B9: 0x98F4,\n 0x88BA: 0x7D62,\n 0x88BB: 0x7DBE,\n 0x88BC: 0x9B8E,\n 0x88BD: 0x6216,\n 0x88BE: 0x7C9F,\n 0x88BF: 0x88B7,\n 0x88C0: 0x5B89,\n 0x88C1: 0x5EB5,\n 0x88C2: 0x6309,\n 0x88C3: 0x6697,\n 0x88C4: 0x6848,\n 0x88C5: 0x95C7,\n 0x88C6: 0x978D,\n 0x88C7: 0x674F,\n 0x88C8: 0x4EE5,\n 0x88C9: 0x4F0A,\n 0x88CA: 0x4F4D,\n 0x88CB: 0x4F9D,\n 0x88CC: 0x5049,\n 0x88CD: 0x56F2,\n 0x88CE: 0x5937,\n 0x88CF: 0x59D4,\n 0x88D0: 0x5A01,\n 0x88D1: 0x5C09,\n 0x88D2: 0x60DF,\n 0x88D3: 0x610F,\n 0x88D4: 0x6170,\n 0x88D5: 0x6613,\n 0x88D6: 0x6905,\n 0x88D7: 0x70BA,\n 0x88D8: 0x754F,\n 0x88D9: 0x7570,\n 0x88DA: 0x79FB,\n 0x88DB: 0x7DAD,\n 0x88DC: 0x7DEF,\n 0x88DD: 0x80C3,\n 0x88DE: 0x840E,\n 0x88DF: 0x8863,\n 0x88E0: 0x8B02,\n 0x88E1: 0x9055,\n 0x88E2: 0x907A,\n 0x88E3: 0x533B,\n 0x88E4: 0x4E95,\n 0x88E5: 0x4EA5,\n 0x88E6: 0x57DF,\n 0x88E7: 0x80B2,\n 0x88E8: 0x90C1,\n 0x88E9: 0x78EF,\n 0x88EA: 0x4E00,\n 0x88EB: 0x58F1,\n 0x88EC: 0x6EA2,\n 0x88ED: 0x9038,\n 0x88EE: 0x7A32,\n 0x88EF: 0x8328,\n 0x88F0: 0x828B,\n 0x88F1: 0x9C2F,\n 0x88F2: 0x5141,\n 0x88F3: 0x5370,\n 0x88F4: 0x54BD,\n 0x88F5: 0x54E1,\n 0x88F6: 0x56E0,\n 0x88F7: 0x59FB,\n 0x88F8: 0x5F15,\n 0x88F9: 0x98F2,\n 0x88FA: 0x6DEB,\n 0x88FB: 0x80E4,\n 0x88FC: 0x852D,\n 0x8940: 0x9662,\n 0x8941: 0x9670,\n 0x8942: 0x96A0,\n 0x8943: 0x97FB,\n 0x8944: 0x540B,\n 0x8945: 0x53F3,\n 0x8946: 0x5B87,\n 0x8947: 0x70CF,\n 0x8948: 0x7FBD,\n 0x8949: 0x8FC2,\n 0x894A: 0x96E8,\n 0x894B: 0x536F,\n 0x894C: 0x9D5C,\n 0x894D: 0x7ABA,\n 0x894E: 0x4E11,\n 0x894F: 0x7893,\n 0x8950: 0x81FC,\n 0x8951: 0x6E26,\n 0x8952: 0x5618,\n 0x8953: 0x5504,\n 0x8954: 0x6B1D,\n 0x8955: 0x851A,\n 0x8956: 0x9C3B,\n 0x8957: 0x59E5,\n 0x8958: 0x53A9,\n 0x8959: 0x6D66,\n 0x895A: 0x74DC,\n 0x895B: 0x958F,\n 0x895C: 0x5642,\n 0x895D: 0x4E91,\n 0x895E: 0x904B,\n 0x895F: 0x96F2,\n 0x8960: 0x834F,\n 0x8961: 0x990C,\n 0x8962: 0x53E1,\n 0x8963: 0x55B6,\n 0x8964: 0x5B30,\n 0x8965: 0x5F71,\n 0x8966: 0x6620,\n 0x8967: 0x66F3,\n 0x8968: 0x6804,\n 0x8969: 0x6C38,\n 0x896A: 0x6CF3,\n 0x896B: 0x6D29,\n 0x896C: 0x745B,\n 0x896D: 0x76C8,\n 0x896E: 0x7A4E,\n 0x896F: 0x9834,\n 0x8970: 0x82F1,\n 0x8971: 0x885B,\n 0x8972: 0x8A60,\n 0x8973: 0x92ED,\n 0x8974: 0x6DB2,\n 0x8975: 0x75AB,\n 0x8976: 0x76CA,\n 0x8977: 0x99C5,\n 0x8978: 0x60A6,\n 0x8979: 0x8B01,\n 0x897A: 0x8D8A,\n 0x897B: 0x95B2,\n 0x897C: 0x698E,\n 0x897D: 0x53AD,\n 0x897E: 0x5186,\n 0x8980: 0x5712,\n 0x8981: 0x5830,\n 0x8982: 0x5944,\n 0x8983: 0x5BB4,\n 0x8984: 0x5EF6,\n 0x8985: 0x6028,\n 0x8986: 0x63A9,\n 0x8987: 0x63F4,\n 0x8988: 0x6CBF,\n 0x8989: 0x6F14,\n 0x898A: 0x708E,\n 0x898B: 0x7114,\n 0x898C: 0x7159,\n 0x898D: 0x71D5,\n 0x898E: 0x733F,\n 0x898F: 0x7E01,\n 0x8990: 0x8276,\n 0x8991: 0x82D1,\n 0x8992: 0x8597,\n 0x8993: 0x9060,\n 0x8994: 0x925B,\n 0x8995: 0x9D1B,\n 0x8996: 0x5869,\n 0x8997: 0x65BC,\n 0x8998: 0x6C5A,\n 0x8999: 0x7525,\n 0x899A: 0x51F9,\n 0x899B: 0x592E,\n 0x899C: 0x5965,\n 0x899D: 0x5F80,\n 0x899E: 0x5FDC,\n 0x899F: 0x62BC,\n 0x89A0: 0x65FA,\n 0x89A1: 0x6A2A,\n 0x89A2: 0x6B27,\n 0x89A3: 0x6BB4,\n 0x89A4: 0x738B,\n 0x89A5: 0x7FC1,\n 0x89A6: 0x8956,\n 0x89A7: 0x9D2C,\n 0x89A8: 0x9D0E,\n 0x89A9: 0x9EC4,\n 0x89AA: 0x5CA1,\n 0x89AB: 0x6C96,\n 0x89AC: 0x837B,\n 0x89AD: 0x5104,\n 0x89AE: 0x5C4B,\n 0x89AF: 0x61B6,\n 0x89B0: 0x81C6,\n 0x89B1: 0x6876,\n 0x89B2: 0x7261,\n 0x89B3: 0x4E59,\n 0x89B4: 0x4FFA,\n 0x89B5: 0x5378,\n 0x89B6: 0x6069,\n 0x89B7: 0x6E29,\n 0x89B8: 0x7A4F,\n 0x89B9: 0x97F3,\n 0x89BA: 0x4E0B,\n 0x89BB: 0x5316,\n 0x89BC: 0x4EEE,\n 0x89BD: 0x4F55,\n 0x89BE: 0x4F3D,\n 0x89BF: 0x4FA1,\n 0x89C0: 0x4F73,\n 0x89C1: 0x52A0,\n 0x89C2: 0x53EF,\n 0x89C3: 0x5609,\n 0x89C4: 0x590F,\n 0x89C5: 0x5AC1,\n 0x89C6: 0x5BB6,\n 0x89C7: 0x5BE1,\n 0x89C8: 0x79D1,\n 0x89C9: 0x6687,\n 0x89CA: 0x679C,\n 0x89CB: 0x67B6,\n 0x89CC: 0x6B4C,\n 0x89CD: 0x6CB3,\n 0x89CE: 0x706B,\n 0x89CF: 0x73C2,\n 0x89D0: 0x798D,\n 0x89D1: 0x79BE,\n 0x89D2: 0x7A3C,\n 0x89D3: 0x7B87,\n 0x89D4: 0x82B1,\n 0x89D5: 0x82DB,\n 0x89D6: 0x8304,\n 0x89D7: 0x8377,\n 0x89D8: 0x83EF,\n 0x89D9: 0x83D3,\n 0x89DA: 0x8766,\n 0x89DB: 0x8AB2,\n 0x89DC: 0x5629,\n 0x89DD: 0x8CA8,\n 0x89DE: 0x8FE6,\n 0x89DF: 0x904E,\n 0x89E0: 0x971E,\n 0x89E1: 0x868A,\n 0x89E2: 0x4FC4,\n 0x89E3: 0x5CE8,\n 0x89E4: 0x6211,\n 0x89E5: 0x7259,\n 0x89E6: 0x753B,\n 0x89E7: 0x81E5,\n 0x89E8: 0x82BD,\n 0x89E9: 0x86FE,\n 0x89EA: 0x8CC0,\n 0x89EB: 0x96C5,\n 0x89EC: 0x9913,\n 0x89ED: 0x99D5,\n 0x89EE: 0x4ECB,\n 0x89EF: 0x4F1A,\n 0x89F0: 0x89E3,\n 0x89F1: 0x56DE,\n 0x89F2: 0x584A,\n 0x89F3: 0x58CA,\n 0x89F4: 0x5EFB,\n 0x89F5: 0x5FEB,\n 0x89F6: 0x602A,\n 0x89F7: 0x6094,\n 0x89F8: 0x6062,\n 0x89F9: 0x61D0,\n 0x89FA: 0x6212,\n 0x89FB: 0x62D0,\n 0x89FC: 0x6539,\n 0x8A40: 0x9B41,\n 0x8A41: 0x6666,\n 0x8A42: 0x68B0,\n 0x8A43: 0x6D77,\n 0x8A44: 0x7070,\n 0x8A45: 0x754C,\n 0x8A46: 0x7686,\n 0x8A47: 0x7D75,\n 0x8A48: 0x82A5,\n 0x8A49: 0x87F9,\n 0x8A4A: 0x958B,\n 0x8A4B: 0x968E,\n 0x8A4C: 0x8C9D,\n 0x8A4D: 0x51F1,\n 0x8A4E: 0x52BE,\n 0x8A4F: 0x5916,\n 0x8A50: 0x54B3,\n 0x8A51: 0x5BB3,\n 0x8A52: 0x5D16,\n 0x8A53: 0x6168,\n 0x8A54: 0x6982,\n 0x8A55: 0x6DAF,\n 0x8A56: 0x788D,\n 0x8A57: 0x84CB,\n 0x8A58: 0x8857,\n 0x8A59: 0x8A72,\n 0x8A5A: 0x93A7,\n 0x8A5B: 0x9AB8,\n 0x8A5C: 0x6D6C,\n 0x8A5D: 0x99A8,\n 0x8A5E: 0x86D9,\n 0x8A5F: 0x57A3,\n 0x8A60: 0x67FF,\n 0x8A61: 0x86CE,\n 0x8A62: 0x920E,\n 0x8A63: 0x5283,\n 0x8A64: 0x5687,\n 0x8A65: 0x5404,\n 0x8A66: 0x5ED3,\n 0x8A67: 0x62E1,\n 0x8A68: 0x64B9,\n 0x8A69: 0x683C,\n 0x8A6A: 0x6838,\n 0x8A6B: 0x6BBB,\n 0x8A6C: 0x7372,\n 0x8A6D: 0x78BA,\n 0x8A6E: 0x7A6B,\n 0x8A6F: 0x899A,\n 0x8A70: 0x89D2,\n 0x8A71: 0x8D6B,\n 0x8A72: 0x8F03,\n 0x8A73: 0x90ED,\n 0x8A74: 0x95A3,\n 0x8A75: 0x9694,\n 0x8A76: 0x9769,\n 0x8A77: 0x5B66,\n 0x8A78: 0x5CB3,\n 0x8A79: 0x697D,\n 0x8A7A: 0x984D,\n 0x8A7B: 0x984E,\n 0x8A7C: 0x639B,\n 0x8A7D: 0x7B20,\n 0x8A7E: 0x6A2B,\n 0x8A80: 0x6A7F,\n 0x8A81: 0x68B6,\n 0x8A82: 0x9C0D,\n 0x8A83: 0x6F5F,\n 0x8A84: 0x5272,\n 0x8A85: 0x559D,\n 0x8A86: 0x6070,\n 0x8A87: 0x62EC,\n 0x8A88: 0x6D3B,\n 0x8A89: 0x6E07,\n 0x8A8A: 0x6ED1,\n 0x8A8B: 0x845B,\n 0x8A8C: 0x8910,\n 0x8A8D: 0x8F44,\n 0x8A8E: 0x4E14,\n 0x8A8F: 0x9C39,\n 0x8A90: 0x53F6,\n 0x8A91: 0x691B,\n 0x8A92: 0x6A3A,\n 0x8A93: 0x9784,\n 0x8A94: 0x682A,\n 0x8A95: 0x515C,\n 0x8A96: 0x7AC3,\n 0x8A97: 0x84B2,\n 0x8A98: 0x91DC,\n 0x8A99: 0x938C,\n 0x8A9A: 0x565B,\n 0x8A9B: 0x9D28,\n 0x8A9C: 0x6822,\n 0x8A9D: 0x8305,\n 0x8A9E: 0x8431,\n 0x8A9F: 0x7CA5,\n 0x8AA0: 0x5208,\n 0x8AA1: 0x82C5,\n 0x8AA2: 0x74E6,\n 0x8AA3: 0x4E7E,\n 0x8AA4: 0x4F83,\n 0x8AA5: 0x51A0,\n 0x8AA6: 0x5BD2,\n 0x8AA7: 0x520A,\n 0x8AA8: 0x52D8,\n 0x8AA9: 0x52E7,\n 0x8AAA: 0x5DFB,\n 0x8AAB: 0x559A,\n 0x8AAC: 0x582A,\n 0x8AAD: 0x59E6,\n 0x8AAE: 0x5B8C,\n 0x8AAF: 0x5B98,\n 0x8AB0: 0x5BDB,\n 0x8AB1: 0x5E72,\n 0x8AB2: 0x5E79,\n 0x8AB3: 0x60A3,\n 0x8AB4: 0x611F,\n 0x8AB5: 0x6163,\n 0x8AB6: 0x61BE,\n 0x8AB7: 0x63DB,\n 0x8AB8: 0x6562,\n 0x8AB9: 0x67D1,\n 0x8ABA: 0x6853,\n 0x8ABB: 0x68FA,\n 0x8ABC: 0x6B3E,\n 0x8ABD: 0x6B53,\n 0x8ABE: 0x6C57,\n 0x8ABF: 0x6F22,\n 0x8AC0: 0x6F97,\n 0x8AC1: 0x6F45,\n 0x8AC2: 0x74B0,\n 0x8AC3: 0x7518,\n 0x8AC4: 0x76E3,\n 0x8AC5: 0x770B,\n 0x8AC6: 0x7AFF,\n 0x8AC7: 0x7BA1,\n 0x8AC8: 0x7C21,\n 0x8AC9: 0x7DE9,\n 0x8ACA: 0x7F36,\n 0x8ACB: 0x7FF0,\n 0x8ACC: 0x809D,\n 0x8ACD: 0x8266,\n 0x8ACE: 0x839E,\n 0x8ACF: 0x89B3,\n 0x8AD0: 0x8ACC,\n 0x8AD1: 0x8CAB,\n 0x8AD2: 0x9084,\n 0x8AD3: 0x9451,\n 0x8AD4: 0x9593,\n 0x8AD5: 0x9591,\n 0x8AD6: 0x95A2,\n 0x8AD7: 0x9665,\n 0x8AD8: 0x97D3,\n 0x8AD9: 0x9928,\n 0x8ADA: 0x8218,\n 0x8ADB: 0x4E38,\n 0x8ADC: 0x542B,\n 0x8ADD: 0x5CB8,\n 0x8ADE: 0x5DCC,\n 0x8ADF: 0x73A9,\n 0x8AE0: 0x764C,\n 0x8AE1: 0x773C,\n 0x8AE2: 0x5CA9,\n 0x8AE3: 0x7FEB,\n 0x8AE4: 0x8D0B,\n 0x8AE5: 0x96C1,\n 0x8AE6: 0x9811,\n 0x8AE7: 0x9854,\n 0x8AE8: 0x9858,\n 0x8AE9: 0x4F01,\n 0x8AEA: 0x4F0E,\n 0x8AEB: 0x5371,\n 0x8AEC: 0x559C,\n 0x8AED: 0x5668,\n 0x8AEE: 0x57FA,\n 0x8AEF: 0x5947,\n 0x8AF0: 0x5B09,\n 0x8AF1: 0x5BC4,\n 0x8AF2: 0x5C90,\n 0x8AF3: 0x5E0C,\n 0x8AF4: 0x5E7E,\n 0x8AF5: 0x5FCC,\n 0x8AF6: 0x63EE,\n 0x8AF7: 0x673A,\n 0x8AF8: 0x65D7,\n 0x8AF9: 0x65E2,\n 0x8AFA: 0x671F,\n 0x8AFB: 0x68CB,\n 0x8AFC: 0x68C4,\n 0x8B40: 0x6A5F,\n 0x8B41: 0x5E30,\n 0x8B42: 0x6BC5,\n 0x8B43: 0x6C17,\n 0x8B44: 0x6C7D,\n 0x8B45: 0x757F,\n 0x8B46: 0x7948,\n 0x8B47: 0x5B63,\n 0x8B48: 0x7A00,\n 0x8B49: 0x7D00,\n 0x8B4A: 0x5FBD,\n 0x8B4B: 0x898F,\n 0x8B4C: 0x8A18,\n 0x8B4D: 0x8CB4,\n 0x8B4E: 0x8D77,\n 0x8B4F: 0x8ECC,\n 0x8B50: 0x8F1D,\n 0x8B51: 0x98E2,\n 0x8B52: 0x9A0E,\n 0x8B53: 0x9B3C,\n 0x8B54: 0x4E80,\n 0x8B55: 0x507D,\n 0x8B56: 0x5100,\n 0x8B57: 0x5993,\n 0x8B58: 0x5B9C,\n 0x8B59: 0x622F,\n 0x8B5A: 0x6280,\n 0x8B5B: 0x64EC,\n 0x8B5C: 0x6B3A,\n 0x8B5D: 0x72A0,\n 0x8B5E: 0x7591,\n 0x8B5F: 0x7947,\n 0x8B60: 0x7FA9,\n 0x8B61: 0x87FB,\n 0x8B62: 0x8ABC,\n 0x8B63: 0x8B70,\n 0x8B64: 0x63AC,\n 0x8B65: 0x83CA,\n 0x8B66: 0x97A0,\n 0x8B67: 0x5409,\n 0x8B68: 0x5403,\n 0x8B69: 0x55AB,\n 0x8B6A: 0x6854,\n 0x8B6B: 0x6A58,\n 0x8B6C: 0x8A70,\n 0x8B6D: 0x7827,\n 0x8B6E: 0x6775,\n 0x8B6F: 0x9ECD,\n 0x8B70: 0x5374,\n 0x8B71: 0x5BA2,\n 0x8B72: 0x811A,\n 0x8B73: 0x8650,\n 0x8B74: 0x9006,\n 0x8B75: 0x4E18,\n 0x8B76: 0x4E45,\n 0x8B77: 0x4EC7,\n 0x8B78: 0x4F11,\n 0x8B79: 0x53CA,\n 0x8B7A: 0x5438,\n 0x8B7B: 0x5BAE,\n 0x8B7C: 0x5F13,\n 0x8B7D: 0x6025,\n 0x8B7E: 0x6551,\n 0x8B80: 0x673D,\n 0x8B81: 0x6C42,\n 0x8B82: 0x6C72,\n 0x8B83: 0x6CE3,\n 0x8B84: 0x7078,\n 0x8B85: 0x7403,\n 0x8B86: 0x7A76,\n 0x8B87: 0x7AAE,\n 0x8B88: 0x7B08,\n 0x8B89: 0x7D1A,\n 0x8B8A: 0x7CFE,\n 0x8B8B: 0x7D66,\n 0x8B8C: 0x65E7,\n 0x8B8D: 0x725B,\n 0x8B8E: 0x53BB,\n 0x8B8F: 0x5C45,\n 0x8B90: 0x5DE8,\n 0x8B91: 0x62D2,\n 0x8B92: 0x62E0,\n 0x8B93: 0x6319,\n 0x8B94: 0x6E20,\n 0x8B95: 0x865A,\n 0x8B96: 0x8A31,\n 0x8B97: 0x8DDD,\n 0x8B98: 0x92F8,\n 0x8B99: 0x6F01,\n 0x8B9A: 0x79A6,\n 0x8B9B: 0x9B5A,\n 0x8B9C: 0x4EA8,\n 0x8B9D: 0x4EAB,\n 0x8B9E: 0x4EAC,\n 0x8B9F: 0x4F9B,\n 0x8BA0: 0x4FA0,\n 0x8BA1: 0x50D1,\n 0x8BA2: 0x5147,\n 0x8BA3: 0x7AF6,\n 0x8BA4: 0x5171,\n 0x8BA5: 0x51F6,\n 0x8BA6: 0x5354,\n 0x8BA7: 0x5321,\n 0x8BA8: 0x537F,\n 0x8BA9: 0x53EB,\n 0x8BAA: 0x55AC,\n 0x8BAB: 0x5883,\n 0x8BAC: 0x5CE1,\n 0x8BAD: 0x5F37,\n 0x8BAE: 0x5F4A,\n 0x8BAF: 0x602F,\n 0x8BB0: 0x6050,\n 0x8BB1: 0x606D,\n 0x8BB2: 0x631F,\n 0x8BB3: 0x6559,\n 0x8BB4: 0x6A4B,\n 0x8BB5: 0x6CC1,\n 0x8BB6: 0x72C2,\n 0x8BB7: 0x72ED,\n 0x8BB8: 0x77EF,\n 0x8BB9: 0x80F8,\n 0x8BBA: 0x8105,\n 0x8BBB: 0x8208,\n 0x8BBC: 0x854E,\n 0x8BBD: 0x90F7,\n 0x8BBE: 0x93E1,\n 0x8BBF: 0x97FF,\n 0x8BC0: 0x9957,\n 0x8BC1: 0x9A5A,\n 0x8BC2: 0x4EF0,\n 0x8BC3: 0x51DD,\n 0x8BC4: 0x5C2D,\n 0x8BC5: 0x6681,\n 0x8BC6: 0x696D,\n 0x8BC7: 0x5C40,\n 0x8BC8: 0x66F2,\n 0x8BC9: 0x6975,\n 0x8BCA: 0x7389,\n 0x8BCB: 0x6850,\n 0x8BCC: 0x7C81,\n 0x8BCD: 0x50C5,\n 0x8BCE: 0x52E4,\n 0x8BCF: 0x5747,\n 0x8BD0: 0x5DFE,\n 0x8BD1: 0x9326,\n 0x8BD2: 0x65A4,\n 0x8BD3: 0x6B23,\n 0x8BD4: 0x6B3D,\n 0x8BD5: 0x7434,\n 0x8BD6: 0x7981,\n 0x8BD7: 0x79BD,\n 0x8BD8: 0x7B4B,\n 0x8BD9: 0x7DCA,\n 0x8BDA: 0x82B9,\n 0x8BDB: 0x83CC,\n 0x8BDC: 0x887F,\n 0x8BDD: 0x895F,\n 0x8BDE: 0x8B39,\n 0x8BDF: 0x8FD1,\n 0x8BE0: 0x91D1,\n 0x8BE1: 0x541F,\n 0x8BE2: 0x9280,\n 0x8BE3: 0x4E5D,\n 0x8BE4: 0x5036,\n 0x8BE5: 0x53E5,\n 0x8BE6: 0x533A,\n 0x8BE7: 0x72D7,\n 0x8BE8: 0x7396,\n 0x8BE9: 0x77E9,\n 0x8BEA: 0x82E6,\n 0x8BEB: 0x8EAF,\n 0x8BEC: 0x99C6,\n 0x8BED: 0x99C8,\n 0x8BEE: 0x99D2,\n 0x8BEF: 0x5177,\n 0x8BF0: 0x611A,\n 0x8BF1: 0x865E,\n 0x8BF2: 0x55B0,\n 0x8BF3: 0x7A7A,\n 0x8BF4: 0x5076,\n 0x8BF5: 0x5BD3,\n 0x8BF6: 0x9047,\n 0x8BF7: 0x9685,\n 0x8BF8: 0x4E32,\n 0x8BF9: 0x6ADB,\n 0x8BFA: 0x91E7,\n 0x8BFB: 0x5C51,\n 0x8BFC: 0x5C48,\n 0x8C40: 0x6398,\n 0x8C41: 0x7A9F,\n 0x8C42: 0x6C93,\n 0x8C43: 0x9774,\n 0x8C44: 0x8F61,\n 0x8C45: 0x7AAA,\n 0x8C46: 0x718A,\n 0x8C47: 0x9688,\n 0x8C48: 0x7C82,\n 0x8C49: 0x6817,\n 0x8C4A: 0x7E70,\n 0x8C4B: 0x6851,\n 0x8C4C: 0x936C,\n 0x8C4D: 0x52F2,\n 0x8C4E: 0x541B,\n 0x8C4F: 0x85AB,\n 0x8C50: 0x8A13,\n 0x8C51: 0x7FA4,\n 0x8C52: 0x8ECD,\n 0x8C53: 0x90E1,\n 0x8C54: 0x5366,\n 0x8C55: 0x8888,\n 0x8C56: 0x7941,\n 0x8C57: 0x4FC2,\n 0x8C58: 0x50BE,\n 0x8C59: 0x5211,\n 0x8C5A: 0x5144,\n 0x8C5B: 0x5553,\n 0x8C5C: 0x572D,\n 0x8C5D: 0x73EA,\n 0x8C5E: 0x578B,\n 0x8C5F: 0x5951,\n 0x8C60: 0x5F62,\n 0x8C61: 0x5F84,\n 0x8C62: 0x6075,\n 0x8C63: 0x6176,\n 0x8C64: 0x6167,\n 0x8C65: 0x61A9,\n 0x8C66: 0x63B2,\n 0x8C67: 0x643A,\n 0x8C68: 0x656C,\n 0x8C69: 0x666F,\n 0x8C6A: 0x6842,\n 0x8C6B: 0x6E13,\n 0x8C6C: 0x7566,\n 0x8C6D: 0x7A3D,\n 0x8C6E: 0x7CFB,\n 0x8C6F: 0x7D4C,\n 0x8C70: 0x7D99,\n 0x8C71: 0x7E4B,\n 0x8C72: 0x7F6B,\n 0x8C73: 0x830E,\n 0x8C74: 0x834A,\n 0x8C75: 0x86CD,\n 0x8C76: 0x8A08,\n 0x8C77: 0x8A63,\n 0x8C78: 0x8B66,\n 0x8C79: 0x8EFD,\n 0x8C7A: 0x981A,\n 0x8C7B: 0x9D8F,\n 0x8C7C: 0x82B8,\n 0x8C7D: 0x8FCE,\n 0x8C7E: 0x9BE8,\n 0x8C80: 0x5287,\n 0x8C81: 0x621F,\n 0x8C82: 0x6483,\n 0x8C83: 0x6FC0,\n 0x8C84: 0x9699,\n 0x8C85: 0x6841,\n 0x8C86: 0x5091,\n 0x8C87: 0x6B20,\n 0x8C88: 0x6C7A,\n 0x8C89: 0x6F54,\n 0x8C8A: 0x7A74,\n 0x8C8B: 0x7D50,\n 0x8C8C: 0x8840,\n 0x8C8D: 0x8A23,\n 0x8C8E: 0x6708,\n 0x8C8F: 0x4EF6,\n 0x8C90: 0x5039,\n 0x8C91: 0x5026,\n 0x8C92: 0x5065,\n 0x8C93: 0x517C,\n 0x8C94: 0x5238,\n 0x8C95: 0x5263,\n 0x8C96: 0x55A7,\n 0x8C97: 0x570F,\n 0x8C98: 0x5805,\n 0x8C99: 0x5ACC,\n 0x8C9A: 0x5EFA,\n 0x8C9B: 0x61B2,\n 0x8C9C: 0x61F8,\n 0x8C9D: 0x62F3,\n 0x8C9E: 0x6372,\n 0x8C9F: 0x691C,\n 0x8CA0: 0x6A29,\n 0x8CA1: 0x727D,\n 0x8CA2: 0x72AC,\n 0x8CA3: 0x732E,\n 0x8CA4: 0x7814,\n 0x8CA5: 0x786F,\n 0x8CA6: 0x7D79,\n 0x8CA7: 0x770C,\n 0x8CA8: 0x80A9,\n 0x8CA9: 0x898B,\n 0x8CAA: 0x8B19,\n 0x8CAB: 0x8CE2,\n 0x8CAC: 0x8ED2,\n 0x8CAD: 0x9063,\n 0x8CAE: 0x9375,\n 0x8CAF: 0x967A,\n 0x8CB0: 0x9855,\n 0x8CB1: 0x9A13,\n 0x8CB2: 0x9E78,\n 0x8CB3: 0x5143,\n 0x8CB4: 0x539F,\n 0x8CB5: 0x53B3,\n 0x8CB6: 0x5E7B,\n 0x8CB7: 0x5F26,\n 0x8CB8: 0x6E1B,\n 0x8CB9: 0x6E90,\n 0x8CBA: 0x7384,\n 0x8CBB: 0x73FE,\n 0x8CBC: 0x7D43,\n 0x8CBD: 0x8237,\n 0x8CBE: 0x8A00,\n 0x8CBF: 0x8AFA,\n 0x8CC0: 0x9650,\n 0x8CC1: 0x4E4E,\n 0x8CC2: 0x500B,\n 0x8CC3: 0x53E4,\n 0x8CC4: 0x547C,\n 0x8CC5: 0x56FA,\n 0x8CC6: 0x59D1,\n 0x8CC7: 0x5B64,\n 0x8CC8: 0x5DF1,\n 0x8CC9: 0x5EAB,\n 0x8CCA: 0x5F27,\n 0x8CCB: 0x6238,\n 0x8CCC: 0x6545,\n 0x8CCD: 0x67AF,\n 0x8CCE: 0x6E56,\n 0x8CCF: 0x72D0,\n 0x8CD0: 0x7CCA,\n 0x8CD1: 0x88B4,\n 0x8CD2: 0x80A1,\n 0x8CD3: 0x80E1,\n 0x8CD4: 0x83F0,\n 0x8CD5: 0x864E,\n 0x8CD6: 0x8A87,\n 0x8CD7: 0x8DE8,\n 0x8CD8: 0x9237,\n 0x8CD9: 0x96C7,\n 0x8CDA: 0x9867,\n 0x8CDB: 0x9F13,\n 0x8CDC: 0x4E94,\n 0x8CDD: 0x4E92,\n 0x8CDE: 0x4F0D,\n 0x8CDF: 0x5348,\n 0x8CE0: 0x5449,\n 0x8CE1: 0x543E,\n 0x8CE2: 0x5A2F,\n 0x8CE3: 0x5F8C,\n 0x8CE4: 0x5FA1,\n 0x8CE5: 0x609F,\n 0x8CE6: 0x68A7,\n 0x8CE7: 0x6A8E,\n 0x8CE8: 0x745A,\n 0x8CE9: 0x7881,\n 0x8CEA: 0x8A9E,\n 0x8CEB: 0x8AA4,\n 0x8CEC: 0x8B77,\n 0x8CED: 0x9190,\n 0x8CEE: 0x4E5E,\n 0x8CEF: 0x9BC9,\n 0x8CF0: 0x4EA4,\n 0x8CF1: 0x4F7C,\n 0x8CF2: 0x4FAF,\n 0x8CF3: 0x5019,\n 0x8CF4: 0x5016,\n 0x8CF5: 0x5149,\n 0x8CF6: 0x516C,\n 0x8CF7: 0x529F,\n 0x8CF8: 0x52B9,\n 0x8CF9: 0x52FE,\n 0x8CFA: 0x539A,\n 0x8CFB: 0x53E3,\n 0x8CFC: 0x5411,\n 0x8D40: 0x540E,\n 0x8D41: 0x5589,\n 0x8D42: 0x5751,\n 0x8D43: 0x57A2,\n 0x8D44: 0x597D,\n 0x8D45: 0x5B54,\n 0x8D46: 0x5B5D,\n 0x8D47: 0x5B8F,\n 0x8D48: 0x5DE5,\n 0x8D49: 0x5DE7,\n 0x8D4A: 0x5DF7,\n 0x8D4B: 0x5E78,\n 0x8D4C: 0x5E83,\n 0x8D4D: 0x5E9A,\n 0x8D4E: 0x5EB7,\n 0x8D4F: 0x5F18,\n 0x8D50: 0x6052,\n 0x8D51: 0x614C,\n 0x8D52: 0x6297,\n 0x8D53: 0x62D8,\n 0x8D54: 0x63A7,\n 0x8D55: 0x653B,\n 0x8D56: 0x6602,\n 0x8D57: 0x6643,\n 0x8D58: 0x66F4,\n 0x8D59: 0x676D,\n 0x8D5A: 0x6821,\n 0x8D5B: 0x6897,\n 0x8D5C: 0x69CB,\n 0x8D5D: 0x6C5F,\n 0x8D5E: 0x6D2A,\n 0x8D5F: 0x6D69,\n 0x8D60: 0x6E2F,\n 0x8D61: 0x6E9D,\n 0x8D62: 0x7532,\n 0x8D63: 0x7687,\n 0x8D64: 0x786C,\n 0x8D65: 0x7A3F,\n 0x8D66: 0x7CE0,\n 0x8D67: 0x7D05,\n 0x8D68: 0x7D18,\n 0x8D69: 0x7D5E,\n 0x8D6A: 0x7DB1,\n 0x8D6B: 0x8015,\n 0x8D6C: 0x8003,\n 0x8D6D: 0x80AF,\n 0x8D6E: 0x80B1,\n 0x8D6F: 0x8154,\n 0x8D70: 0x818F,\n 0x8D71: 0x822A,\n 0x8D72: 0x8352,\n 0x8D73: 0x884C,\n 0x8D74: 0x8861,\n 0x8D75: 0x8B1B,\n 0x8D76: 0x8CA2,\n 0x8D77: 0x8CFC,\n 0x8D78: 0x90CA,\n 0x8D79: 0x9175,\n 0x8D7A: 0x9271,\n 0x8D7B: 0x783F,\n 0x8D7C: 0x92FC,\n 0x8D7D: 0x95A4,\n 0x8D7E: 0x964D,\n 0x8D80: 0x9805,\n 0x8D81: 0x9999,\n 0x8D82: 0x9AD8,\n 0x8D83: 0x9D3B,\n 0x8D84: 0x525B,\n 0x8D85: 0x52AB,\n 0x8D86: 0x53F7,\n 0x8D87: 0x5408,\n 0x8D88: 0x58D5,\n 0x8D89: 0x62F7,\n 0x8D8A: 0x6FE0,\n 0x8D8B: 0x8C6A,\n 0x8D8C: 0x8F5F,\n 0x8D8D: 0x9EB9,\n 0x8D8E: 0x514B,\n 0x8D8F: 0x523B,\n 0x8D90: 0x544A,\n 0x8D91: 0x56FD,\n 0x8D92: 0x7A40,\n 0x8D93: 0x9177,\n 0x8D94: 0x9D60,\n 0x8D95: 0x9ED2,\n 0x8D96: 0x7344,\n 0x8D97: 0x6F09,\n 0x8D98: 0x8170,\n 0x8D99: 0x7511,\n 0x8D9A: 0x5FFD,\n 0x8D9B: 0x60DA,\n 0x8D9C: 0x9AA8,\n 0x8D9D: 0x72DB,\n 0x8D9E: 0x8FBC,\n 0x8D9F: 0x6B64,\n 0x8DA0: 0x9803,\n 0x8DA1: 0x4ECA,\n 0x8DA2: 0x56F0,\n 0x8DA3: 0x5764,\n 0x8DA4: 0x58BE,\n 0x8DA5: 0x5A5A,\n 0x8DA6: 0x6068,\n 0x8DA7: 0x61C7,\n 0x8DA8: 0x660F,\n 0x8DA9: 0x6606,\n 0x8DAA: 0x6839,\n 0x8DAB: 0x68B1,\n 0x8DAC: 0x6DF7,\n 0x8DAD: 0x75D5,\n 0x8DAE: 0x7D3A,\n 0x8DAF: 0x826E,\n 0x8DB0: 0x9B42,\n 0x8DB1: 0x4E9B,\n 0x8DB2: 0x4F50,\n 0x8DB3: 0x53C9,\n 0x8DB4: 0x5506,\n 0x8DB5: 0x5D6F,\n 0x8DB6: 0x5DE6,\n 0x8DB7: 0x5DEE,\n 0x8DB8: 0x67FB,\n 0x8DB9: 0x6C99,\n 0x8DBA: 0x7473,\n 0x8DBB: 0x7802,\n 0x8DBC: 0x8A50,\n 0x8DBD: 0x9396,\n 0x8DBE: 0x88DF,\n 0x8DBF: 0x5750,\n 0x8DC0: 0x5EA7,\n 0x8DC1: 0x632B,\n 0x8DC2: 0x50B5,\n 0x8DC3: 0x50AC,\n 0x8DC4: 0x518D,\n 0x8DC5: 0x6700,\n 0x8DC6: 0x54C9,\n 0x8DC7: 0x585E,\n 0x8DC8: 0x59BB,\n 0x8DC9: 0x5BB0,\n 0x8DCA: 0x5F69,\n 0x8DCB: 0x624D,\n 0x8DCC: 0x63A1,\n 0x8DCD: 0x683D,\n 0x8DCE: 0x6B73,\n 0x8DCF: 0x6E08,\n 0x8DD0: 0x707D,\n 0x8DD1: 0x91C7,\n 0x8DD2: 0x7280,\n 0x8DD3: 0x7815,\n 0x8DD4: 0x7826,\n 0x8DD5: 0x796D,\n 0x8DD6: 0x658E,\n 0x8DD7: 0x7D30,\n 0x8DD8: 0x83DC,\n 0x8DD9: 0x88C1,\n 0x8DDA: 0x8F09,\n 0x8DDB: 0x969B,\n 0x8DDC: 0x5264,\n 0x8DDD: 0x5728,\n 0x8DDE: 0x6750,\n 0x8DDF: 0x7F6A,\n 0x8DE0: 0x8CA1,\n 0x8DE1: 0x51B4,\n 0x8DE2: 0x5742,\n 0x8DE3: 0x962A,\n 0x8DE4: 0x583A,\n 0x8DE5: 0x698A,\n 0x8DE6: 0x80B4,\n 0x8DE7: 0x54B2,\n 0x8DE8: 0x5D0E,\n 0x8DE9: 0x57FC,\n 0x8DEA: 0x7895,\n 0x8DEB: 0x9DFA,\n 0x8DEC: 0x4F5C,\n 0x8DED: 0x524A,\n 0x8DEE: 0x548B,\n 0x8DEF: 0x643E,\n 0x8DF0: 0x6628,\n 0x8DF1: 0x6714,\n 0x8DF2: 0x67F5,\n 0x8DF3: 0x7A84,\n 0x8DF4: 0x7B56,\n 0x8DF5: 0x7D22,\n 0x8DF6: 0x932F,\n 0x8DF7: 0x685C,\n 0x8DF8: 0x9BAD,\n 0x8DF9: 0x7B39,\n 0x8DFA: 0x5319,\n 0x8DFB: 0x518A,\n 0x8DFC: 0x5237,\n 0x8E40: 0x5BDF,\n 0x8E41: 0x62F6,\n 0x8E42: 0x64AE,\n 0x8E43: 0x64E6,\n 0x8E44: 0x672D,\n 0x8E45: 0x6BBA,\n 0x8E46: 0x85A9,\n 0x8E47: 0x96D1,\n 0x8E48: 0x7690,\n 0x8E49: 0x9BD6,\n 0x8E4A: 0x634C,\n 0x8E4B: 0x9306,\n 0x8E4C: 0x9BAB,\n 0x8E4D: 0x76BF,\n 0x8E4E: 0x6652,\n 0x8E4F: 0x4E09,\n 0x8E50: 0x5098,\n 0x8E51: 0x53C2,\n 0x8E52: 0x5C71,\n 0x8E53: 0x60E8,\n 0x8E54: 0x6492,\n 0x8E55: 0x6563,\n 0x8E56: 0x685F,\n 0x8E57: 0x71E6,\n 0x8E58: 0x73CA,\n 0x8E59: 0x7523,\n 0x8E5A: 0x7B97,\n 0x8E5B: 0x7E82,\n 0x8E5C: 0x8695,\n 0x8E5D: 0x8B83,\n 0x8E5E: 0x8CDB,\n 0x8E5F: 0x9178,\n 0x8E60: 0x9910,\n 0x8E61: 0x65AC,\n 0x8E62: 0x66AB,\n 0x8E63: 0x6B8B,\n 0x8E64: 0x4ED5,\n 0x8E65: 0x4ED4,\n 0x8E66: 0x4F3A,\n 0x8E67: 0x4F7F,\n 0x8E68: 0x523A,\n 0x8E69: 0x53F8,\n 0x8E6A: 0x53F2,\n 0x8E6B: 0x55E3,\n 0x8E6C: 0x56DB,\n 0x8E6D: 0x58EB,\n 0x8E6E: 0x59CB,\n 0x8E6F: 0x59C9,\n 0x8E70: 0x59FF,\n 0x8E71: 0x5B50,\n 0x8E72: 0x5C4D,\n 0x8E73: 0x5E02,\n 0x8E74: 0x5E2B,\n 0x8E75: 0x5FD7,\n 0x8E76: 0x601D,\n 0x8E77: 0x6307,\n 0x8E78: 0x652F,\n 0x8E79: 0x5B5C,\n 0x8E7A: 0x65AF,\n 0x8E7B: 0x65BD,\n 0x8E7C: 0x65E8,\n 0x8E7D: 0x679D,\n 0x8E7E: 0x6B62,\n 0x8E80: 0x6B7B,\n 0x8E81: 0x6C0F,\n 0x8E82: 0x7345,\n 0x8E83: 0x7949,\n 0x8E84: 0x79C1,\n 0x8E85: 0x7CF8,\n 0x8E86: 0x7D19,\n 0x8E87: 0x7D2B,\n 0x8E88: 0x80A2,\n 0x8E89: 0x8102,\n 0x8E8A: 0x81F3,\n 0x8E8B: 0x8996,\n 0x8E8C: 0x8A5E,\n 0x8E8D: 0x8A69,\n 0x8E8E: 0x8A66,\n 0x8E8F: 0x8A8C,\n 0x8E90: 0x8AEE,\n 0x8E91: 0x8CC7,\n 0x8E92: 0x8CDC,\n 0x8E93: 0x96CC,\n 0x8E94: 0x98FC,\n 0x8E95: 0x6B6F,\n 0x8E96: 0x4E8B,\n 0x8E97: 0x4F3C,\n 0x8E98: 0x4F8D,\n 0x8E99: 0x5150,\n 0x8E9A: 0x5B57,\n 0x8E9B: 0x5BFA,\n 0x8E9C: 0x6148,\n 0x8E9D: 0x6301,\n 0x8E9E: 0x6642,\n 0x8E9F: 0x6B21,\n 0x8EA0: 0x6ECB,\n 0x8EA1: 0x6CBB,\n 0x8EA2: 0x723E,\n 0x8EA3: 0x74BD,\n 0x8EA4: 0x75D4,\n 0x8EA5: 0x78C1,\n 0x8EA6: 0x793A,\n 0x8EA7: 0x800C,\n 0x8EA8: 0x8033,\n 0x8EA9: 0x81EA,\n 0x8EAA: 0x8494,\n 0x8EAB: 0x8F9E,\n 0x8EAC: 0x6C50,\n 0x8EAD: 0x9E7F,\n 0x8EAE: 0x5F0F,\n 0x8EAF: 0x8B58,\n 0x8EB0: 0x9D2B,\n 0x8EB1: 0x7AFA,\n 0x8EB2: 0x8EF8,\n 0x8EB3: 0x5B8D,\n 0x8EB4: 0x96EB,\n 0x8EB5: 0x4E03,\n 0x8EB6: 0x53F1,\n 0x8EB7: 0x57F7,\n 0x8EB8: 0x5931,\n 0x8EB9: 0x5AC9,\n 0x8EBA: 0x5BA4,\n 0x8EBB: 0x6089,\n 0x8EBC: 0x6E7F,\n 0x8EBD: 0x6F06,\n 0x8EBE: 0x75BE,\n 0x8EBF: 0x8CEA,\n 0x8EC0: 0x5B9F,\n 0x8EC1: 0x8500,\n 0x8EC2: 0x7BE0,\n 0x8EC3: 0x5072,\n 0x8EC4: 0x67F4,\n 0x8EC5: 0x829D,\n 0x8EC6: 0x5C61,\n 0x8EC7: 0x854A,\n 0x8EC8: 0x7E1E,\n 0x8EC9: 0x820E,\n 0x8ECA: 0x5199,\n 0x8ECB: 0x5C04,\n 0x8ECC: 0x6368,\n 0x8ECD: 0x8D66,\n 0x8ECE: 0x659C,\n 0x8ECF: 0x716E,\n 0x8ED0: 0x793E,\n 0x8ED1: 0x7D17,\n 0x8ED2: 0x8005,\n 0x8ED3: 0x8B1D,\n 0x8ED4: 0x8ECA,\n 0x8ED5: 0x906E,\n 0x8ED6: 0x86C7,\n 0x8ED7: 0x90AA,\n 0x8ED8: 0x501F,\n 0x8ED9: 0x52FA,\n 0x8EDA: 0x5C3A,\n 0x8EDB: 0x6753,\n 0x8EDC: 0x707C,\n 0x8EDD: 0x7235,\n 0x8EDE: 0x914C,\n 0x8EDF: 0x91C8,\n 0x8EE0: 0x932B,\n 0x8EE1: 0x82E5,\n 0x8EE2: 0x5BC2,\n 0x8EE3: 0x5F31,\n 0x8EE4: 0x60F9,\n 0x8EE5: 0x4E3B,\n 0x8EE6: 0x53D6,\n 0x8EE7: 0x5B88,\n 0x8EE8: 0x624B,\n 0x8EE9: 0x6731,\n 0x8EEA: 0x6B8A,\n 0x8EEB: 0x72E9,\n 0x8EEC: 0x73E0,\n 0x8EED: 0x7A2E,\n 0x8EEE: 0x816B,\n 0x8EEF: 0x8DA3,\n 0x8EF0: 0x9152,\n 0x8EF1: 0x9996,\n 0x8EF2: 0x5112,\n 0x8EF3: 0x53D7,\n 0x8EF4: 0x546A,\n 0x8EF5: 0x5BFF,\n 0x8EF6: 0x6388,\n 0x8EF7: 0x6A39,\n 0x8EF8: 0x7DAC,\n 0x8EF9: 0x9700,\n 0x8EFA: 0x56DA,\n 0x8EFB: 0x53CE,\n 0x8EFC: 0x5468,\n 0x8F40: 0x5B97,\n 0x8F41: 0x5C31,\n 0x8F42: 0x5DDE,\n 0x8F43: 0x4FEE,\n 0x8F44: 0x6101,\n 0x8F45: 0x62FE,\n 0x8F46: 0x6D32,\n 0x8F47: 0x79C0,\n 0x8F48: 0x79CB,\n 0x8F49: 0x7D42,\n 0x8F4A: 0x7E4D,\n 0x8F4B: 0x7FD2,\n 0x8F4C: 0x81ED,\n 0x8F4D: 0x821F,\n 0x8F4E: 0x8490,\n 0x8F4F: 0x8846,\n 0x8F50: 0x8972,\n 0x8F51: 0x8B90,\n 0x8F52: 0x8E74,\n 0x8F53: 0x8F2F,\n 0x8F54: 0x9031,\n 0x8F55: 0x914B,\n 0x8F56: 0x916C,\n 0x8F57: 0x96C6,\n 0x8F58: 0x919C,\n 0x8F59: 0x4EC0,\n 0x8F5A: 0x4F4F,\n 0x8F5B: 0x5145,\n 0x8F5C: 0x5341,\n 0x8F5D: 0x5F93,\n 0x8F5E: 0x620E,\n 0x8F5F: 0x67D4,\n 0x8F60: 0x6C41,\n 0x8F61: 0x6E0B,\n 0x8F62: 0x7363,\n 0x8F63: 0x7E26,\n 0x8F64: 0x91CD,\n 0x8F65: 0x9283,\n 0x8F66: 0x53D4,\n 0x8F67: 0x5919,\n 0x8F68: 0x5BBF,\n 0x8F69: 0x6DD1,\n 0x8F6A: 0x795D,\n 0x8F6B: 0x7E2E,\n 0x8F6C: 0x7C9B,\n 0x8F6D: 0x587E,\n 0x8F6E: 0x719F,\n 0x8F6F: 0x51FA,\n 0x8F70: 0x8853,\n 0x8F71: 0x8FF0,\n 0x8F72: 0x4FCA,\n 0x8F73: 0x5CFB,\n 0x8F74: 0x6625,\n 0x8F75: 0x77AC,\n 0x8F76: 0x7AE3,\n 0x8F77: 0x821C,\n 0x8F78: 0x99FF,\n 0x8F79: 0x51C6,\n 0x8F7A: 0x5FAA,\n 0x8F7B: 0x65EC,\n 0x8F7C: 0x696F,\n 0x8F7D: 0x6B89,\n 0x8F7E: 0x6DF3,\n 0x8F80: 0x6E96,\n 0x8F81: 0x6F64,\n 0x8F82: 0x76FE,\n 0x8F83: 0x7D14,\n 0x8F84: 0x5DE1,\n 0x8F85: 0x9075,\n 0x8F86: 0x9187,\n 0x8F87: 0x9806,\n 0x8F88: 0x51E6,\n 0x8F89: 0x521D,\n 0x8F8A: 0x6240,\n 0x8F8B: 0x6691,\n 0x8F8C: 0x66D9,\n 0x8F8D: 0x6E1A,\n 0x8F8E: 0x5EB6,\n 0x8F8F: 0x7DD2,\n 0x8F90: 0x7F72,\n 0x8F91: 0x66F8,\n 0x8F92: 0x85AF,\n 0x8F93: 0x85F7,\n 0x8F94: 0x8AF8,\n 0x8F95: 0x52A9,\n 0x8F96: 0x53D9,\n 0x8F97: 0x5973,\n 0x8F98: 0x5E8F,\n 0x8F99: 0x5F90,\n 0x8F9A: 0x6055,\n 0x8F9B: 0x92E4,\n 0x8F9C: 0x9664,\n 0x8F9D: 0x50B7,\n 0x8F9E: 0x511F,\n 0x8F9F: 0x52DD,\n 0x8FA0: 0x5320,\n 0x8FA1: 0x5347,\n 0x8FA2: 0x53EC,\n 0x8FA3: 0x54E8,\n 0x8FA4: 0x5546,\n 0x8FA5: 0x5531,\n 0x8FA6: 0x5617,\n 0x8FA7: 0x5968,\n 0x8FA8: 0x59BE,\n 0x8FA9: 0x5A3C,\n 0x8FAA: 0x5BB5,\n 0x8FAB: 0x5C06,\n 0x8FAC: 0x5C0F,\n 0x8FAD: 0x5C11,\n 0x8FAE: 0x5C1A,\n 0x8FAF: 0x5E84,\n 0x8FB0: 0x5E8A,\n 0x8FB1: 0x5EE0,\n 0x8FB2: 0x5F70,\n 0x8FB3: 0x627F,\n 0x8FB4: 0x6284,\n 0x8FB5: 0x62DB,\n 0x8FB6: 0x638C,\n 0x8FB7: 0x6377,\n 0x8FB8: 0x6607,\n 0x8FB9: 0x660C,\n 0x8FBA: 0x662D,\n 0x8FBB: 0x6676,\n 0x8FBC: 0x677E,\n 0x8FBD: 0x68A2,\n 0x8FBE: 0x6A1F,\n 0x8FBF: 0x6A35,\n 0x8FC0: 0x6CBC,\n 0x8FC1: 0x6D88,\n 0x8FC2: 0x6E09,\n 0x8FC3: 0x6E58,\n 0x8FC4: 0x713C,\n 0x8FC5: 0x7126,\n 0x8FC6: 0x7167,\n 0x8FC7: 0x75C7,\n 0x8FC8: 0x7701,\n 0x8FC9: 0x785D,\n 0x8FCA: 0x7901,\n 0x8FCB: 0x7965,\n 0x8FCC: 0x79F0,\n 0x8FCD: 0x7AE0,\n 0x8FCE: 0x7B11,\n 0x8FCF: 0x7CA7,\n 0x8FD0: 0x7D39,\n 0x8FD1: 0x8096,\n 0x8FD2: 0x83D6,\n 0x8FD3: 0x848B,\n 0x8FD4: 0x8549,\n 0x8FD5: 0x885D,\n 0x8FD6: 0x88F3,\n 0x8FD7: 0x8A1F,\n 0x8FD8: 0x8A3C,\n 0x8FD9: 0x8A54,\n 0x8FDA: 0x8A73,\n 0x8FDB: 0x8C61,\n 0x8FDC: 0x8CDE,\n 0x8FDD: 0x91A4,\n 0x8FDE: 0x9266,\n 0x8FDF: 0x937E,\n 0x8FE0: 0x9418,\n 0x8FE1: 0x969C,\n 0x8FE2: 0x9798,\n 0x8FE3: 0x4E0A,\n 0x8FE4: 0x4E08,\n 0x8FE5: 0x4E1E,\n 0x8FE6: 0x4E57,\n 0x8FE7: 0x5197,\n 0x8FE8: 0x5270,\n 0x8FE9: 0x57CE,\n 0x8FEA: 0x5834,\n 0x8FEB: 0x58CC,\n 0x8FEC: 0x5B22,\n 0x8FED: 0x5E38,\n 0x8FEE: 0x60C5,\n 0x8FEF: 0x64FE,\n 0x8FF0: 0x6761,\n 0x8FF1: 0x6756,\n 0x8FF2: 0x6D44,\n 0x8FF3: 0x72B6,\n 0x8FF4: 0x7573,\n 0x8FF5: 0x7A63,\n 0x8FF6: 0x84B8,\n 0x8FF7: 0x8B72,\n 0x8FF8: 0x91B8,\n 0x8FF9: 0x9320,\n 0x8FFA: 0x5631,\n 0x8FFB: 0x57F4,\n 0x8FFC: 0x98FE,\n 0x9040: 0x62ED,\n 0x9041: 0x690D,\n 0x9042: 0x6B96,\n 0x9043: 0x71ED,\n 0x9044: 0x7E54,\n 0x9045: 0x8077,\n 0x9046: 0x8272,\n 0x9047: 0x89E6,\n 0x9048: 0x98DF,\n 0x9049: 0x8755,\n 0x904A: 0x8FB1,\n 0x904B: 0x5C3B,\n 0x904C: 0x4F38,\n 0x904D: 0x4FE1,\n 0x904E: 0x4FB5,\n 0x904F: 0x5507,\n 0x9050: 0x5A20,\n 0x9051: 0x5BDD,\n 0x9052: 0x5BE9,\n 0x9053: 0x5FC3,\n 0x9054: 0x614E,\n 0x9055: 0x632F,\n 0x9056: 0x65B0,\n 0x9057: 0x664B,\n 0x9058: 0x68EE,\n 0x9059: 0x699B,\n 0x905A: 0x6D78,\n 0x905B: 0x6DF1,\n 0x905C: 0x7533,\n 0x905D: 0x75B9,\n 0x905E: 0x771F,\n 0x905F: 0x795E,\n 0x9060: 0x79E6,\n 0x9061: 0x7D33,\n 0x9062: 0x81E3,\n 0x9063: 0x82AF,\n 0x9064: 0x85AA,\n 0x9065: 0x89AA,\n 0x9066: 0x8A3A,\n 0x9067: 0x8EAB,\n 0x9068: 0x8F9B,\n 0x9069: 0x9032,\n 0x906A: 0x91DD,\n 0x906B: 0x9707,\n 0x906C: 0x4EBA,\n 0x906D: 0x4EC1,\n 0x906E: 0x5203,\n 0x906F: 0x5875,\n 0x9070: 0x58EC,\n 0x9071: 0x5C0B,\n 0x9072: 0x751A,\n 0x9073: 0x5C3D,\n 0x9074: 0x814E,\n 0x9075: 0x8A0A,\n 0x9076: 0x8FC5,\n 0x9077: 0x9663,\n 0x9078: 0x976D,\n 0x9079: 0x7B25,\n 0x907A: 0x8ACF,\n 0x907B: 0x9808,\n 0x907C: 0x9162,\n 0x907D: 0x56F3,\n 0x907E: 0x53A8,\n 0x9080: 0x9017,\n 0x9081: 0x5439,\n 0x9082: 0x5782,\n 0x9083: 0x5E25,\n 0x9084: 0x63A8,\n 0x9085: 0x6C34,\n 0x9086: 0x708A,\n 0x9087: 0x7761,\n 0x9088: 0x7C8B,\n 0x9089: 0x7FE0,\n 0x908A: 0x8870,\n 0x908B: 0x9042,\n 0x908C: 0x9154,\n 0x908D: 0x9310,\n 0x908E: 0x9318,\n 0x908F: 0x968F,\n 0x9090: 0x745E,\n 0x9091: 0x9AC4,\n 0x9092: 0x5D07,\n 0x9093: 0x5D69,\n 0x9094: 0x6570,\n 0x9095: 0x67A2,\n 0x9096: 0x8DA8,\n 0x9097: 0x96DB,\n 0x9098: 0x636E,\n 0x9099: 0x6749,\n 0x909A: 0x6919,\n 0x909B: 0x83C5,\n 0x909C: 0x9817,\n 0x909D: 0x96C0,\n 0x909E: 0x88FE,\n 0x909F: 0x6F84,\n 0x90A0: 0x647A,\n 0x90A1: 0x5BF8,\n 0x90A2: 0x4E16,\n 0x90A3: 0x702C,\n 0x90A4: 0x755D,\n 0x90A5: 0x662F,\n 0x90A6: 0x51C4,\n 0x90A7: 0x5236,\n 0x90A8: 0x52E2,\n 0x90A9: 0x59D3,\n 0x90AA: 0x5F81,\n 0x90AB: 0x6027,\n 0x90AC: 0x6210,\n 0x90AD: 0x653F,\n 0x90AE: 0x6574,\n 0x90AF: 0x661F,\n 0x90B0: 0x6674,\n 0x90B1: 0x68F2,\n 0x90B2: 0x6816,\n 0x90B3: 0x6B63,\n 0x90B4: 0x6E05,\n 0x90B5: 0x7272,\n 0x90B6: 0x751F,\n 0x90B7: 0x76DB,\n 0x90B8: 0x7CBE,\n 0x90B9: 0x8056,\n 0x90BA: 0x58F0,\n 0x90BB: 0x88FD,\n 0x90BC: 0x897F,\n 0x90BD: 0x8AA0,\n 0x90BE: 0x8A93,\n 0x90BF: 0x8ACB,\n 0x90C0: 0x901D,\n 0x90C1: 0x9192,\n 0x90C2: 0x9752,\n 0x90C3: 0x9759,\n 0x90C4: 0x6589,\n 0x90C5: 0x7A0E,\n 0x90C6: 0x8106,\n 0x90C7: 0x96BB,\n 0x90C8: 0x5E2D,\n 0x90C9: 0x60DC,\n 0x90CA: 0x621A,\n 0x90CB: 0x65A5,\n 0x90CC: 0x6614,\n 0x90CD: 0x6790,\n 0x90CE: 0x77F3,\n 0x90CF: 0x7A4D,\n 0x90D0: 0x7C4D,\n 0x90D1: 0x7E3E,\n 0x90D2: 0x810A,\n 0x90D3: 0x8CAC,\n 0x90D4: 0x8D64,\n 0x90D5: 0x8DE1,\n 0x90D6: 0x8E5F,\n 0x90D7: 0x78A9,\n 0x90D8: 0x5207,\n 0x90D9: 0x62D9,\n 0x90DA: 0x63A5,\n 0x90DB: 0x6442,\n 0x90DC: 0x6298,\n 0x90DD: 0x8A2D,\n 0x90DE: 0x7A83,\n 0x90DF: 0x7BC0,\n 0x90E0: 0x8AAC,\n 0x90E1: 0x96EA,\n 0x90E2: 0x7D76,\n 0x90E3: 0x820C,\n 0x90E4: 0x8749,\n 0x90E5: 0x4ED9,\n 0x90E6: 0x5148,\n 0x90E7: 0x5343,\n 0x90E8: 0x5360,\n 0x90E9: 0x5BA3,\n 0x90EA: 0x5C02,\n 0x90EB: 0x5C16,\n 0x90EC: 0x5DDD,\n 0x90ED: 0x6226,\n 0x90EE: 0x6247,\n 0x90EF: 0x64B0,\n 0x90F0: 0x6813,\n 0x90F1: 0x6834,\n 0x90F2: 0x6CC9,\n 0x90F3: 0x6D45,\n 0x90F4: 0x6D17,\n 0x90F5: 0x67D3,\n 0x90F6: 0x6F5C,\n 0x90F7: 0x714E,\n 0x90F8: 0x717D,\n 0x90F9: 0x65CB,\n 0x90FA: 0x7A7F,\n 0x90FB: 0x7BAD,\n 0x90FC: 0x7DDA,\n 0x9140: 0x7E4A,\n 0x9141: 0x7FA8,\n 0x9142: 0x817A,\n 0x9143: 0x821B,\n 0x9144: 0x8239,\n 0x9145: 0x85A6,\n 0x9146: 0x8A6E,\n 0x9147: 0x8CCE,\n 0x9148: 0x8DF5,\n 0x9149: 0x9078,\n 0x914A: 0x9077,\n 0x914B: 0x92AD,\n 0x914C: 0x9291,\n 0x914D: 0x9583,\n 0x914E: 0x9BAE,\n 0x914F: 0x524D,\n 0x9150: 0x5584,\n 0x9151: 0x6F38,\n 0x9152: 0x7136,\n 0x9153: 0x5168,\n 0x9154: 0x7985,\n 0x9155: 0x7E55,\n 0x9156: 0x81B3,\n 0x9157: 0x7CCE,\n 0x9158: 0x564C,\n 0x9159: 0x5851,\n 0x915A: 0x5CA8,\n 0x915B: 0x63AA,\n 0x915C: 0x66FE,\n 0x915D: 0x66FD,\n 0x915E: 0x695A,\n 0x915F: 0x72D9,\n 0x9160: 0x758F,\n 0x9161: 0x758E,\n 0x9162: 0x790E,\n 0x9163: 0x7956,\n 0x9164: 0x79DF,\n 0x9165: 0x7C97,\n 0x9166: 0x7D20,\n 0x9167: 0x7D44,\n 0x9168: 0x8607,\n 0x9169: 0x8A34,\n 0x916A: 0x963B,\n 0x916B: 0x9061,\n 0x916C: 0x9F20,\n 0x916D: 0x50E7,\n 0x916E: 0x5275,\n 0x916F: 0x53CC,\n 0x9170: 0x53E2,\n 0x9171: 0x5009,\n 0x9172: 0x55AA,\n 0x9173: 0x58EE,\n 0x9174: 0x594F,\n 0x9175: 0x723D,\n 0x9176: 0x5B8B,\n 0x9177: 0x5C64,\n 0x9178: 0x531D,\n 0x9179: 0x60E3,\n 0x917A: 0x60F3,\n 0x917B: 0x635C,\n 0x917C: 0x6383,\n 0x917D: 0x633F,\n 0x917E: 0x63BB,\n 0x9180: 0x64CD,\n 0x9181: 0x65E9,\n 0x9182: 0x66F9,\n 0x9183: 0x5DE3,\n 0x9184: 0x69CD,\n 0x9185: 0x69FD,\n 0x9186: 0x6F15,\n 0x9187: 0x71E5,\n 0x9188: 0x4E89,\n 0x9189: 0x75E9,\n 0x918A: 0x76F8,\n 0x918B: 0x7A93,\n 0x918C: 0x7CDF,\n 0x918D: 0x7DCF,\n 0x918E: 0x7D9C,\n 0x918F: 0x8061,\n 0x9190: 0x8349,\n 0x9191: 0x8358,\n 0x9192: 0x846C,\n 0x9193: 0x84BC,\n 0x9194: 0x85FB,\n 0x9195: 0x88C5,\n 0x9196: 0x8D70,\n 0x9197: 0x9001,\n 0x9198: 0x906D,\n 0x9199: 0x9397,\n 0x919A: 0x971C,\n 0x919B: 0x9A12,\n 0x919C: 0x50CF,\n 0x919D: 0x5897,\n 0x919E: 0x618E,\n 0x919F: 0x81D3,\n 0x91A0: 0x8535,\n 0x91A1: 0x8D08,\n 0x91A2: 0x9020,\n 0x91A3: 0x4FC3,\n 0x91A4: 0x5074,\n 0x91A5: 0x5247,\n 0x91A6: 0x5373,\n 0x91A7: 0x606F,\n 0x91A8: 0x6349,\n 0x91A9: 0x675F,\n 0x91AA: 0x6E2C,\n 0x91AB: 0x8DB3,\n 0x91AC: 0x901F,\n 0x91AD: 0x4FD7,\n 0x91AE: 0x5C5E,\n 0x91AF: 0x8CCA,\n 0x91B0: 0x65CF,\n 0x91B1: 0x7D9A,\n 0x91B2: 0x5352,\n 0x91B3: 0x8896,\n 0x91B4: 0x5176,\n 0x91B5: 0x63C3,\n 0x91B6: 0x5B58,\n 0x91B7: 0x5B6B,\n 0x91B8: 0x5C0A,\n 0x91B9: 0x640D,\n 0x91BA: 0x6751,\n 0x91BB: 0x905C,\n 0x91BC: 0x4ED6,\n 0x91BD: 0x591A,\n 0x91BE: 0x592A,\n 0x91BF: 0x6C70,\n 0x91C0: 0x8A51,\n 0x91C1: 0x553E,\n 0x91C2: 0x5815,\n 0x91C3: 0x59A5,\n 0x91C4: 0x60F0,\n 0x91C5: 0x6253,\n 0x91C6: 0x67C1,\n 0x91C7: 0x8235,\n 0x91C8: 0x6955,\n 0x91C9: 0x9640,\n 0x91CA: 0x99C4,\n 0x91CB: 0x9A28,\n 0x91CC: 0x4F53,\n 0x91CD: 0x5806,\n 0x91CE: 0x5BFE,\n 0x91CF: 0x8010,\n 0x91D0: 0x5CB1,\n 0x91D1: 0x5E2F,\n 0x91D2: 0x5F85,\n 0x91D3: 0x6020,\n 0x91D4: 0x614B,\n 0x91D5: 0x6234,\n 0x91D6: 0x66FF,\n 0x91D7: 0x6CF0,\n 0x91D8: 0x6EDE,\n 0x91D9: 0x80CE,\n 0x91DA: 0x817F,\n 0x91DB: 0x82D4,\n 0x91DC: 0x888B,\n 0x91DD: 0x8CB8,\n 0x91DE: 0x9000,\n 0x91DF: 0x902E,\n 0x91E0: 0x968A,\n 0x91E1: 0x9EDB,\n 0x91E2: 0x9BDB,\n 0x91E3: 0x4EE3,\n 0x91E4: 0x53F0,\n 0x91E5: 0x5927,\n 0x91E6: 0x7B2C,\n 0x91E7: 0x918D,\n 0x91E8: 0x984C,\n 0x91E9: 0x9DF9,\n 0x91EA: 0x6EDD,\n 0x91EB: 0x7027,\n 0x91EC: 0x5353,\n 0x91ED: 0x5544,\n 0x91EE: 0x5B85,\n 0x91EF: 0x6258,\n 0x91F0: 0x629E,\n 0x91F1: 0x62D3,\n 0x91F2: 0x6CA2,\n 0x91F3: 0x6FEF,\n 0x91F4: 0x7422,\n 0x91F5: 0x8A17,\n 0x91F6: 0x9438,\n 0x91F7: 0x6FC1,\n 0x91F8: 0x8AFE,\n 0x91F9: 0x8338,\n 0x91FA: 0x51E7,\n 0x91FB: 0x86F8,\n 0x91FC: 0x53EA,\n 0x9240: 0x53E9,\n 0x9241: 0x4F46,\n 0x9242: 0x9054,\n 0x9243: 0x8FB0,\n 0x9244: 0x596A,\n 0x9245: 0x8131,\n 0x9246: 0x5DFD,\n 0x9247: 0x7AEA,\n 0x9248: 0x8FBF,\n 0x9249: 0x68DA,\n 0x924A: 0x8C37,\n 0x924B: 0x72F8,\n 0x924C: 0x9C48,\n 0x924D: 0x6A3D,\n 0x924E: 0x8AB0,\n 0x924F: 0x4E39,\n 0x9250: 0x5358,\n 0x9251: 0x5606,\n 0x9252: 0x5766,\n 0x9253: 0x62C5,\n 0x9254: 0x63A2,\n 0x9255: 0x65E6,\n 0x9256: 0x6B4E,\n 0x9257: 0x6DE1,\n 0x9258: 0x6E5B,\n 0x9259: 0x70AD,\n 0x925A: 0x77ED,\n 0x925B: 0x7AEF,\n 0x925C: 0x7BAA,\n 0x925D: 0x7DBB,\n 0x925E: 0x803D,\n 0x925F: 0x80C6,\n 0x9260: 0x86CB,\n 0x9261: 0x8A95,\n 0x9262: 0x935B,\n 0x9263: 0x56E3,\n 0x9264: 0x58C7,\n 0x9265: 0x5F3E,\n 0x9266: 0x65AD,\n 0x9267: 0x6696,\n 0x9268: 0x6A80,\n 0x9269: 0x6BB5,\n 0x926A: 0x7537,\n 0x926B: 0x8AC7,\n 0x926C: 0x5024,\n 0x926D: 0x77E5,\n 0x926E: 0x5730,\n 0x926F: 0x5F1B,\n 0x9270: 0x6065,\n 0x9271: 0x667A,\n 0x9272: 0x6C60,\n 0x9273: 0x75F4,\n 0x9274: 0x7A1A,\n 0x9275: 0x7F6E,\n 0x9276: 0x81F4,\n 0x9277: 0x8718,\n 0x9278: 0x9045,\n 0x9279: 0x99B3,\n 0x927A: 0x7BC9,\n 0x927B: 0x755C,\n 0x927C: 0x7AF9,\n 0x927D: 0x7B51,\n 0x927E: 0x84C4,\n 0x9280: 0x9010,\n 0x9281: 0x79E9,\n 0x9282: 0x7A92,\n 0x9283: 0x8336,\n 0x9284: 0x5AE1,\n 0x9285: 0x7740,\n 0x9286: 0x4E2D,\n 0x9287: 0x4EF2,\n 0x9288: 0x5B99,\n 0x9289: 0x5FE0,\n 0x928A: 0x62BD,\n 0x928B: 0x663C,\n 0x928C: 0x67F1,\n 0x928D: 0x6CE8,\n 0x928E: 0x866B,\n 0x928F: 0x8877,\n 0x9290: 0x8A3B,\n 0x9291: 0x914E,\n 0x9292: 0x92F3,\n 0x9293: 0x99D0,\n 0x9294: 0x6A17,\n 0x9295: 0x7026,\n 0x9296: 0x732A,\n 0x9297: 0x82E7,\n 0x9298: 0x8457,\n 0x9299: 0x8CAF,\n 0x929A: 0x4E01,\n 0x929B: 0x5146,\n 0x929C: 0x51CB,\n 0x929D: 0x558B,\n 0x929E: 0x5BF5,\n 0x929F: 0x5E16,\n 0x92A0: 0x5E33,\n 0x92A1: 0x5E81,\n 0x92A2: 0x5F14,\n 0x92A3: 0x5F35,\n 0x92A4: 0x5F6B,\n 0x92A5: 0x5FB4,\n 0x92A6: 0x61F2,\n 0x92A7: 0x6311,\n 0x92A8: 0x66A2,\n 0x92A9: 0x671D,\n 0x92AA: 0x6F6E,\n 0x92AB: 0x7252,\n 0x92AC: 0x753A,\n 0x92AD: 0x773A,\n 0x92AE: 0x8074,\n 0x92AF: 0x8139,\n 0x92B0: 0x8178,\n 0x92B1: 0x8776,\n 0x92B2: 0x8ABF,\n 0x92B3: 0x8ADC,\n 0x92B4: 0x8D85,\n 0x92B5: 0x8DF3,\n 0x92B6: 0x929A,\n 0x92B7: 0x9577,\n 0x92B8: 0x9802,\n 0x92B9: 0x9CE5,\n 0x92BA: 0x52C5,\n 0x92BB: 0x6357,\n 0x92BC: 0x76F4,\n 0x92BD: 0x6715,\n 0x92BE: 0x6C88,\n 0x92BF: 0x73CD,\n 0x92C0: 0x8CC3,\n 0x92C1: 0x93AE,\n 0x92C2: 0x9673,\n 0x92C3: 0x6D25,\n 0x92C4: 0x589C,\n 0x92C5: 0x690E,\n 0x92C6: 0x69CC,\n 0x92C7: 0x8FFD,\n 0x92C8: 0x939A,\n 0x92C9: 0x75DB,\n 0x92CA: 0x901A,\n 0x92CB: 0x585A,\n 0x92CC: 0x6802,\n 0x92CD: 0x63B4,\n 0x92CE: 0x69FB,\n 0x92CF: 0x4F43,\n 0x92D0: 0x6F2C,\n 0x92D1: 0x67D8,\n 0x92D2: 0x8FBB,\n 0x92D3: 0x8526,\n 0x92D4: 0x7DB4,\n 0x92D5: 0x9354,\n 0x92D6: 0x693F,\n 0x92D7: 0x6F70,\n 0x92D8: 0x576A,\n 0x92D9: 0x58F7,\n 0x92DA: 0x5B2C,\n 0x92DB: 0x7D2C,\n 0x92DC: 0x722A,\n 0x92DD: 0x540A,\n 0x92DE: 0x91E3,\n 0x92DF: 0x9DB4,\n 0x92E0: 0x4EAD,\n 0x92E1: 0x4F4E,\n 0x92E2: 0x505C,\n 0x92E3: 0x5075,\n 0x92E4: 0x5243,\n 0x92E5: 0x8C9E,\n 0x92E6: 0x5448,\n 0x92E7: 0x5824,\n 0x92E8: 0x5B9A,\n 0x92E9: 0x5E1D,\n 0x92EA: 0x5E95,\n 0x92EB: 0x5EAD,\n 0x92EC: 0x5EF7,\n 0x92ED: 0x5F1F,\n 0x92EE: 0x608C,\n 0x92EF: 0x62B5,\n 0x92F0: 0x633A,\n 0x92F1: 0x63D0,\n 0x92F2: 0x68AF,\n 0x92F3: 0x6C40,\n 0x92F4: 0x7887,\n 0x92F5: 0x798E,\n 0x92F6: 0x7A0B,\n 0x92F7: 0x7DE0,\n 0x92F8: 0x8247,\n 0x92F9: 0x8A02,\n 0x92FA: 0x8AE6,\n 0x92FB: 0x8E44,\n 0x92FC: 0x9013,\n 0x9340: 0x90B8,\n 0x9341: 0x912D,\n 0x9342: 0x91D8,\n 0x9343: 0x9F0E,\n 0x9344: 0x6CE5,\n 0x9345: 0x6458,\n 0x9346: 0x64E2,\n 0x9347: 0x6575,\n 0x9348: 0x6EF4,\n 0x9349: 0x7684,\n 0x934A: 0x7B1B,\n 0x934B: 0x9069,\n 0x934C: 0x93D1,\n 0x934D: 0x6EBA,\n 0x934E: 0x54F2,\n 0x934F: 0x5FB9,\n 0x9350: 0x64A4,\n 0x9351: 0x8F4D,\n 0x9352: 0x8FED,\n 0x9353: 0x9244,\n 0x9354: 0x5178,\n 0x9355: 0x586B,\n 0x9356: 0x5929,\n 0x9357: 0x5C55,\n 0x9358: 0x5E97,\n 0x9359: 0x6DFB,\n 0x935A: 0x7E8F,\n 0x935B: 0x751C,\n 0x935C: 0x8CBC,\n 0x935D: 0x8EE2,\n 0x935E: 0x985B,\n 0x935F: 0x70B9,\n 0x9360: 0x4F1D,\n 0x9361: 0x6BBF,\n 0x9362: 0x6FB1,\n 0x9363: 0x7530,\n 0x9364: 0x96FB,\n 0x9365: 0x514E,\n 0x9366: 0x5410,\n 0x9367: 0x5835,\n 0x9368: 0x5857,\n 0x9369: 0x59AC,\n 0x936A: 0x5C60,\n 0x936B: 0x5F92,\n 0x936C: 0x6597,\n 0x936D: 0x675C,\n 0x936E: 0x6E21,\n 0x936F: 0x767B,\n 0x9370: 0x83DF,\n 0x9371: 0x8CED,\n 0x9372: 0x9014,\n 0x9373: 0x90FD,\n 0x9374: 0x934D,\n 0x9375: 0x7825,\n 0x9376: 0x783A,\n 0x9377: 0x52AA,\n 0x9378: 0x5EA6,\n 0x9379: 0x571F,\n 0x937A: 0x5974,\n 0x937B: 0x6012,\n 0x937C: 0x5012,\n 0x937D: 0x515A,\n 0x937E: 0x51AC,\n 0x9380: 0x51CD,\n 0x9381: 0x5200,\n 0x9382: 0x5510,\n 0x9383: 0x5854,\n 0x9384: 0x5858,\n 0x9385: 0x5957,\n 0x9386: 0x5B95,\n 0x9387: 0x5CF6,\n 0x9388: 0x5D8B,\n 0x9389: 0x60BC,\n 0x938A: 0x6295,\n 0x938B: 0x642D,\n 0x938C: 0x6771,\n 0x938D: 0x6843,\n 0x938E: 0x68BC,\n 0x938F: 0x68DF,\n 0x9390: 0x76D7,\n 0x9391: 0x6DD8,\n 0x9392: 0x6E6F,\n 0x9393: 0x6D9B,\n 0x9394: 0x706F,\n 0x9395: 0x71C8,\n 0x9396: 0x5F53,\n 0x9397: 0x75D8,\n 0x9398: 0x7977,\n 0x9399: 0x7B49,\n 0x939A: 0x7B54,\n 0x939B: 0x7B52,\n 0x939C: 0x7CD6,\n 0x939D: 0x7D71,\n 0x939E: 0x5230,\n 0x939F: 0x8463,\n 0x93A0: 0x8569,\n 0x93A1: 0x85E4,\n 0x93A2: 0x8A0E,\n 0x93A3: 0x8B04,\n 0x93A4: 0x8C46,\n 0x93A5: 0x8E0F,\n 0x93A6: 0x9003,\n 0x93A7: 0x900F,\n 0x93A8: 0x9419,\n 0x93A9: 0x9676,\n 0x93AA: 0x982D,\n 0x93AB: 0x9A30,\n 0x93AC: 0x95D8,\n 0x93AD: 0x50CD,\n 0x93AE: 0x52D5,\n 0x93AF: 0x540C,\n 0x93B0: 0x5802,\n 0x93B1: 0x5C0E,\n 0x93B2: 0x61A7,\n 0x93B3: 0x649E,\n 0x93B4: 0x6D1E,\n 0x93B5: 0x77B3,\n 0x93B6: 0x7AE5,\n 0x93B7: 0x80F4,\n 0x93B8: 0x8404,\n 0x93B9: 0x9053,\n 0x93BA: 0x9285,\n 0x93BB: 0x5CE0,\n 0x93BC: 0x9D07,\n 0x93BD: 0x533F,\n 0x93BE: 0x5F97,\n 0x93BF: 0x5FB3,\n 0x93C0: 0x6D9C,\n 0x93C1: 0x7279,\n 0x93C2: 0x7763,\n 0x93C3: 0x79BF,\n 0x93C4: 0x7BE4,\n 0x93C5: 0x6BD2,\n 0x93C6: 0x72EC,\n 0x93C7: 0x8AAD,\n 0x93C8: 0x6803,\n 0x93C9: 0x6A61,\n 0x93CA: 0x51F8,\n 0x93CB: 0x7A81,\n 0x93CC: 0x6934,\n 0x93CD: 0x5C4A,\n 0x93CE: 0x9CF6,\n 0x93CF: 0x82EB,\n 0x93D0: 0x5BC5,\n 0x93D1: 0x9149,\n 0x93D2: 0x701E,\n 0x93D3: 0x5678,\n 0x93D4: 0x5C6F,\n 0x93D5: 0x60C7,\n 0x93D6: 0x6566,\n 0x93D7: 0x6C8C,\n 0x93D8: 0x8C5A,\n 0x93D9: 0x9041,\n 0x93DA: 0x9813,\n 0x93DB: 0x5451,\n 0x93DC: 0x66C7,\n 0x93DD: 0x920D,\n 0x93DE: 0x5948,\n 0x93DF: 0x90A3,\n 0x93E0: 0x5185,\n 0x93E1: 0x4E4D,\n 0x93E2: 0x51EA,\n 0x93E3: 0x8599,\n 0x93E4: 0x8B0E,\n 0x93E5: 0x7058,\n 0x93E6: 0x637A,\n 0x93E7: 0x934B,\n 0x93E8: 0x6962,\n 0x93E9: 0x99B4,\n 0x93EA: 0x7E04,\n 0x93EB: 0x7577,\n 0x93EC: 0x5357,\n 0x93ED: 0x6960,\n 0x93EE: 0x8EDF,\n 0x93EF: 0x96E3,\n 0x93F0: 0x6C5D,\n 0x93F1: 0x4E8C,\n 0x93F2: 0x5C3C,\n 0x93F3: 0x5F10,\n 0x93F4: 0x8FE9,\n 0x93F5: 0x5302,\n 0x93F6: 0x8CD1,\n 0x93F7: 0x8089,\n 0x93F8: 0x8679,\n 0x93F9: 0x5EFF,\n 0x93FA: 0x65E5,\n 0x93FB: 0x4E73,\n 0x93FC: 0x5165,\n 0x9440: 0x5982,\n 0x9441: 0x5C3F,\n 0x9442: 0x97EE,\n 0x9443: 0x4EFB,\n 0x9444: 0x598A,\n 0x9445: 0x5FCD,\n 0x9446: 0x8A8D,\n 0x9447: 0x6FE1,\n 0x9448: 0x79B0,\n 0x9449: 0x7962,\n 0x944A: 0x5BE7,\n 0x944B: 0x8471,\n 0x944C: 0x732B,\n 0x944D: 0x71B1,\n 0x944E: 0x5E74,\n 0x944F: 0x5FF5,\n 0x9450: 0x637B,\n 0x9451: 0x649A,\n 0x9452: 0x71C3,\n 0x9453: 0x7C98,\n 0x9454: 0x4E43,\n 0x9455: 0x5EFC,\n 0x9456: 0x4E4B,\n 0x9457: 0x57DC,\n 0x9458: 0x56A2,\n 0x9459: 0x60A9,\n 0x945A: 0x6FC3,\n 0x945B: 0x7D0D,\n 0x945C: 0x80FD,\n 0x945D: 0x8133,\n 0x945E: 0x81BF,\n 0x945F: 0x8FB2,\n 0x9460: 0x8997,\n 0x9461: 0x86A4,\n 0x9462: 0x5DF4,\n 0x9463: 0x628A,\n 0x9464: 0x64AD,\n 0x9465: 0x8987,\n 0x9466: 0x6777,\n 0x9467: 0x6CE2,\n 0x9468: 0x6D3E,\n 0x9469: 0x7436,\n 0x946A: 0x7834,\n 0x946B: 0x5A46,\n 0x946C: 0x7F75,\n 0x946D: 0x82AD,\n 0x946E: 0x99AC,\n 0x946F: 0x4FF3,\n 0x9470: 0x5EC3,\n 0x9471: 0x62DD,\n 0x9472: 0x6392,\n 0x9473: 0x6557,\n 0x9474: 0x676F,\n 0x9475: 0x76C3,\n 0x9476: 0x724C,\n 0x9477: 0x80CC,\n 0x9478: 0x80BA,\n 0x9479: 0x8F29,\n 0x947A: 0x914D,\n 0x947B: 0x500D,\n 0x947C: 0x57F9,\n 0x947D: 0x5A92,\n 0x947E: 0x6885,\n 0x9480: 0x6973,\n 0x9481: 0x7164,\n 0x9482: 0x72FD,\n 0x9483: 0x8CB7,\n 0x9484: 0x58F2,\n 0x9485: 0x8CE0,\n 0x9486: 0x966A,\n 0x9487: 0x9019,\n 0x9488: 0x877F,\n 0x9489: 0x79E4,\n 0x948A: 0x77E7,\n 0x948B: 0x8429,\n 0x948C: 0x4F2F,\n 0x948D: 0x5265,\n 0x948E: 0x535A,\n 0x948F: 0x62CD,\n 0x9490: 0x67CF,\n 0x9491: 0x6CCA,\n 0x9492: 0x767D,\n 0x9493: 0x7B94,\n 0x9494: 0x7C95,\n 0x9495: 0x8236,\n 0x9496: 0x8584,\n 0x9497: 0x8FEB,\n 0x9498: 0x66DD,\n 0x9499: 0x6F20,\n 0x949A: 0x7206,\n 0x949B: 0x7E1B,\n 0x949C: 0x83AB,\n 0x949D: 0x99C1,\n 0x949E: 0x9EA6,\n 0x949F: 0x51FD,\n 0x94A0: 0x7BB1,\n 0x94A1: 0x7872,\n 0x94A2: 0x7BB8,\n 0x94A3: 0x8087,\n 0x94A4: 0x7B48,\n 0x94A5: 0x6AE8,\n 0x94A6: 0x5E61,\n 0x94A7: 0x808C,\n 0x94A8: 0x7551,\n 0x94A9: 0x7560,\n 0x94AA: 0x516B,\n 0x94AB: 0x9262,\n 0x94AC: 0x6E8C,\n 0x94AD: 0x767A,\n 0x94AE: 0x9197,\n 0x94AF: 0x9AEA,\n 0x94B0: 0x4F10,\n 0x94B1: 0x7F70,\n 0x94B2: 0x629C,\n 0x94B3: 0x7B4F,\n 0x94B4: 0x95A5,\n 0x94B5: 0x9CE9,\n 0x94B6: 0x567A,\n 0x94B7: 0x5859,\n 0x94B8: 0x86E4,\n 0x94B9: 0x96BC,\n 0x94BA: 0x4F34,\n 0x94BB: 0x5224,\n 0x94BC: 0x534A,\n 0x94BD: 0x53CD,\n 0x94BE: 0x53DB,\n 0x94BF: 0x5E06,\n 0x94C0: 0x642C,\n 0x94C1: 0x6591,\n 0x94C2: 0x677F,\n 0x94C3: 0x6C3E,\n 0x94C4: 0x6C4E,\n 0x94C5: 0x7248,\n 0x94C6: 0x72AF,\n 0x94C7: 0x73ED,\n 0x94C8: 0x7554,\n 0x94C9: 0x7E41,\n 0x94CA: 0x822C,\n 0x94CB: 0x85E9,\n 0x94CC: 0x8CA9,\n 0x94CD: 0x7BC4,\n 0x94CE: 0x91C6,\n 0x94CF: 0x7169,\n 0x94D0: 0x9812,\n 0x94D1: 0x98EF,\n 0x94D2: 0x633D,\n 0x94D3: 0x6669,\n 0x94D4: 0x756A,\n 0x94D5: 0x76E4,\n 0x94D6: 0x78D0,\n 0x94D7: 0x8543,\n 0x94D8: 0x86EE,\n 0x94D9: 0x532A,\n 0x94DA: 0x5351,\n 0x94DB: 0x5426,\n 0x94DC: 0x5983,\n 0x94DD: 0x5E87,\n 0x94DE: 0x5F7C,\n 0x94DF: 0x60B2,\n 0x94E0: 0x6249,\n 0x94E1: 0x6279,\n 0x94E2: 0x62AB,\n 0x94E3: 0x6590,\n 0x94E4: 0x6BD4,\n 0x94E5: 0x6CCC,\n 0x94E6: 0x75B2,\n 0x94E7: 0x76AE,\n 0x94E8: 0x7891,\n 0x94E9: 0x79D8,\n 0x94EA: 0x7DCB,\n 0x94EB: 0x7F77,\n 0x94EC: 0x80A5,\n 0x94ED: 0x88AB,\n 0x94EE: 0x8AB9,\n 0x94EF: 0x8CBB,\n 0x94F0: 0x907F,\n 0x94F1: 0x975E,\n 0x94F2: 0x98DB,\n 0x94F3: 0x6A0B,\n 0x94F4: 0x7C38,\n 0x94F5: 0x5099,\n 0x94F6: 0x5C3E,\n 0x94F7: 0x5FAE,\n 0x94F8: 0x6787,\n 0x94F9: 0x6BD8,\n 0x94FA: 0x7435,\n 0x94FB: 0x7709,\n 0x94FC: 0x7F8E,\n 0x9540: 0x9F3B,\n 0x9541: 0x67CA,\n 0x9542: 0x7A17,\n 0x9543: 0x5339,\n 0x9544: 0x758B,\n 0x9545: 0x9AED,\n 0x9546: 0x5F66,\n 0x9547: 0x819D,\n 0x9548: 0x83F1,\n 0x9549: 0x8098,\n 0x954A: 0x5F3C,\n 0x954B: 0x5FC5,\n 0x954C: 0x7562,\n 0x954D: 0x7B46,\n 0x954E: 0x903C,\n 0x954F: 0x6867,\n 0x9550: 0x59EB,\n 0x9551: 0x5A9B,\n 0x9552: 0x7D10,\n 0x9553: 0x767E,\n 0x9554: 0x8B2C,\n 0x9555: 0x4FF5,\n 0x9556: 0x5F6A,\n 0x9557: 0x6A19,\n 0x9558: 0x6C37,\n 0x9559: 0x6F02,\n 0x955A: 0x74E2,\n 0x955B: 0x7968,\n 0x955C: 0x8868,\n 0x955D: 0x8A55,\n 0x955E: 0x8C79,\n 0x955F: 0x5EDF,\n 0x9560: 0x63CF,\n 0x9561: 0x75C5,\n 0x9562: 0x79D2,\n 0x9563: 0x82D7,\n 0x9564: 0x9328,\n 0x9565: 0x92F2,\n 0x9566: 0x849C,\n 0x9567: 0x86ED,\n 0x9568: 0x9C2D,\n 0x9569: 0x54C1,\n 0x956A: 0x5F6C,\n 0x956B: 0x658C,\n 0x956C: 0x6D5C,\n 0x956D: 0x7015,\n 0x956E: 0x8CA7,\n 0x956F: 0x8CD3,\n 0x9570: 0x983B,\n 0x9571: 0x654F,\n 0x9572: 0x74F6,\n 0x9573: 0x4E0D,\n 0x9574: 0x4ED8,\n 0x9575: 0x57E0,\n 0x9576: 0x592B,\n 0x9577: 0x5A66,\n 0x9578: 0x5BCC,\n 0x9579: 0x51A8,\n 0x957A: 0x5E03,\n 0x957B: 0x5E9C,\n 0x957C: 0x6016,\n 0x957D: 0x6276,\n 0x957E: 0x6577,\n 0x9580: 0x65A7,\n 0x9581: 0x666E,\n 0x9582: 0x6D6E,\n 0x9583: 0x7236,\n 0x9584: 0x7B26,\n 0x9585: 0x8150,\n 0x9586: 0x819A,\n 0x9587: 0x8299,\n 0x9588: 0x8B5C,\n 0x9589: 0x8CA0,\n 0x958A: 0x8CE6,\n 0x958B: 0x8D74,\n 0x958C: 0x961C,\n 0x958D: 0x9644,\n 0x958E: 0x4FAE,\n 0x958F: 0x64AB,\n 0x9590: 0x6B66,\n 0x9591: 0x821E,\n 0x9592: 0x8461,\n 0x9593: 0x856A,\n 0x9594: 0x90E8,\n 0x9595: 0x5C01,\n 0x9596: 0x6953,\n 0x9597: 0x98A8,\n 0x9598: 0x847A,\n 0x9599: 0x8557,\n 0x959A: 0x4F0F,\n 0x959B: 0x526F,\n 0x959C: 0x5FA9,\n 0x959D: 0x5E45,\n 0x959E: 0x670D,\n 0x959F: 0x798F,\n 0x95A0: 0x8179,\n 0x95A1: 0x8907,\n 0x95A2: 0x8986,\n 0x95A3: 0x6DF5,\n 0x95A4: 0x5F17,\n 0x95A5: 0x6255,\n 0x95A6: 0x6CB8,\n 0x95A7: 0x4ECF,\n 0x95A8: 0x7269,\n 0x95A9: 0x9B92,\n 0x95AA: 0x5206,\n 0x95AB: 0x543B,\n 0x95AC: 0x5674,\n 0x95AD: 0x58B3,\n 0x95AE: 0x61A4,\n 0x95AF: 0x626E,\n 0x95B0: 0x711A,\n 0x95B1: 0x596E,\n 0x95B2: 0x7C89,\n 0x95B3: 0x7CDE,\n 0x95B4: 0x7D1B,\n 0x95B5: 0x96F0,\n 0x95B6: 0x6587,\n 0x95B7: 0x805E,\n 0x95B8: 0x4E19,\n 0x95B9: 0x4F75,\n 0x95BA: 0x5175,\n 0x95BB: 0x5840,\n 0x95BC: 0x5E63,\n 0x95BD: 0x5E73,\n 0x95BE: 0x5F0A,\n 0x95BF: 0x67C4,\n 0x95C0: 0x4E26,\n 0x95C1: 0x853D,\n 0x95C2: 0x9589,\n 0x95C3: 0x965B,\n 0x95C4: 0x7C73,\n 0x95C5: 0x9801,\n 0x95C6: 0x50FB,\n 0x95C7: 0x58C1,\n 0x95C8: 0x7656,\n 0x95C9: 0x78A7,\n 0x95CA: 0x5225,\n 0x95CB: 0x77A5,\n 0x95CC: 0x8511,\n 0x95CD: 0x7B86,\n 0x95CE: 0x504F,\n 0x95CF: 0x5909,\n 0x95D0: 0x7247,\n 0x95D1: 0x7BC7,\n 0x95D2: 0x7DE8,\n 0x95D3: 0x8FBA,\n 0x95D4: 0x8FD4,\n 0x95D5: 0x904D,\n 0x95D6: 0x4FBF,\n 0x95D7: 0x52C9,\n 0x95D8: 0x5A29,\n 0x95D9: 0x5F01,\n 0x95DA: 0x97AD,\n 0x95DB: 0x4FDD,\n 0x95DC: 0x8217,\n 0x95DD: 0x92EA,\n 0x95DE: 0x5703,\n 0x95DF: 0x6355,\n 0x95E0: 0x6B69,\n 0x95E1: 0x752B,\n 0x95E2: 0x88DC,\n 0x95E3: 0x8F14,\n 0x95E4: 0x7A42,\n 0x95E5: 0x52DF,\n 0x95E6: 0x5893,\n 0x95E7: 0x6155,\n 0x95E8: 0x620A,\n 0x95E9: 0x66AE,\n 0x95EA: 0x6BCD,\n 0x95EB: 0x7C3F,\n 0x95EC: 0x83E9,\n 0x95ED: 0x5023,\n 0x95EE: 0x4FF8,\n 0x95EF: 0x5305,\n 0x95F0: 0x5446,\n 0x95F1: 0x5831,\n 0x95F2: 0x5949,\n 0x95F3: 0x5B9D,\n 0x95F4: 0x5CF0,\n 0x95F5: 0x5CEF,\n 0x95F6: 0x5D29,\n 0x95F7: 0x5E96,\n 0x95F8: 0x62B1,\n 0x95F9: 0x6367,\n 0x95FA: 0x653E,\n 0x95FB: 0x65B9,\n 0x95FC: 0x670B,\n 0x9640: 0x6CD5,\n 0x9641: 0x6CE1,\n 0x9642: 0x70F9,\n 0x9643: 0x7832,\n 0x9644: 0x7E2B,\n 0x9645: 0x80DE,\n 0x9646: 0x82B3,\n 0x9647: 0x840C,\n 0x9648: 0x84EC,\n 0x9649: 0x8702,\n 0x964A: 0x8912,\n 0x964B: 0x8A2A,\n 0x964C: 0x8C4A,\n 0x964D: 0x90A6,\n 0x964E: 0x92D2,\n 0x964F: 0x98FD,\n 0x9650: 0x9CF3,\n 0x9651: 0x9D6C,\n 0x9652: 0x4E4F,\n 0x9653: 0x4EA1,\n 0x9654: 0x508D,\n 0x9655: 0x5256,\n 0x9656: 0x574A,\n 0x9657: 0x59A8,\n 0x9658: 0x5E3D,\n 0x9659: 0x5FD8,\n 0x965A: 0x5FD9,\n 0x965B: 0x623F,\n 0x965C: 0x66B4,\n 0x965D: 0x671B,\n 0x965E: 0x67D0,\n 0x965F: 0x68D2,\n 0x9660: 0x5192,\n 0x9661: 0x7D21,\n 0x9662: 0x80AA,\n 0x9663: 0x81A8,\n 0x9664: 0x8B00,\n 0x9665: 0x8C8C,\n 0x9666: 0x8CBF,\n 0x9667: 0x927E,\n 0x9668: 0x9632,\n 0x9669: 0x5420,\n 0x966A: 0x982C,\n 0x966B: 0x5317,\n 0x966C: 0x50D5,\n 0x966D: 0x535C,\n 0x966E: 0x58A8,\n 0x966F: 0x64B2,\n 0x9670: 0x6734,\n 0x9671: 0x7267,\n 0x9672: 0x7766,\n 0x9673: 0x7A46,\n 0x9674: 0x91E6,\n 0x9675: 0x52C3,\n 0x9676: 0x6CA1,\n 0x9677: 0x6B86,\n 0x9678: 0x5800,\n 0x9679: 0x5E4C,\n 0x967A: 0x5954,\n 0x967B: 0x672C,\n 0x967C: 0x7FFB,\n 0x967D: 0x51E1,\n 0x967E: 0x76C6,\n 0x9680: 0x6469,\n 0x9681: 0x78E8,\n 0x9682: 0x9B54,\n 0x9683: 0x9EBB,\n 0x9684: 0x57CB,\n 0x9685: 0x59B9,\n 0x9686: 0x6627,\n 0x9687: 0x679A,\n 0x9688: 0x6BCE,\n 0x9689: 0x54E9,\n 0x968A: 0x69D9,\n 0x968B: 0x5E55,\n 0x968C: 0x819C,\n 0x968D: 0x6795,\n 0x968E: 0x9BAA,\n 0x968F: 0x67FE,\n 0x9690: 0x9C52,\n 0x9691: 0x685D,\n 0x9692: 0x4EA6,\n 0x9693: 0x4FE3,\n 0x9694: 0x53C8,\n 0x9695: 0x62B9,\n 0x9696: 0x672B,\n 0x9697: 0x6CAB,\n 0x9698: 0x8FC4,\n 0x9699: 0x4FAD,\n 0x969A: 0x7E6D,\n 0x969B: 0x9EBF,\n 0x969C: 0x4E07,\n 0x969D: 0x6162,\n 0x969E: 0x6E80,\n 0x969F: 0x6F2B,\n 0x96A0: 0x8513,\n 0x96A1: 0x5473,\n 0x96A2: 0x672A,\n 0x96A3: 0x9B45,\n 0x96A4: 0x5DF3,\n 0x96A5: 0x7B95,\n 0x96A6: 0x5CAC,\n 0x96A7: 0x5BC6,\n 0x96A8: 0x871C,\n 0x96A9: 0x6E4A,\n 0x96AA: 0x84D1,\n 0x96AB: 0x7A14,\n 0x96AC: 0x8108,\n 0x96AD: 0x5999,\n 0x96AE: 0x7C8D,\n 0x96AF: 0x6C11,\n 0x96B0: 0x7720,\n 0x96B1: 0x52D9,\n 0x96B2: 0x5922,\n 0x96B3: 0x7121,\n 0x96B4: 0x725F,\n 0x96B5: 0x77DB,\n 0x96B6: 0x9727,\n 0x96B7: 0x9D61,\n 0x96B8: 0x690B,\n 0x96B9: 0x5A7F,\n 0x96BA: 0x5A18,\n 0x96BB: 0x51A5,\n 0x96BC: 0x540D,\n 0x96BD: 0x547D,\n 0x96BE: 0x660E,\n 0x96BF: 0x76DF,\n 0x96C0: 0x8FF7,\n 0x96C1: 0x9298,\n 0x96C2: 0x9CF4,\n 0x96C3: 0x59EA,\n 0x96C4: 0x725D,\n 0x96C5: 0x6EC5,\n 0x96C6: 0x514D,\n 0x96C7: 0x68C9,\n 0x96C8: 0x7DBF,\n 0x96C9: 0x7DEC,\n 0x96CA: 0x9762,\n 0x96CB: 0x9EBA,\n 0x96CC: 0x6478,\n 0x96CD: 0x6A21,\n 0x96CE: 0x8302,\n 0x96CF: 0x5984,\n 0x96D0: 0x5B5F,\n 0x96D1: 0x6BDB,\n 0x96D2: 0x731B,\n 0x96D3: 0x76F2,\n 0x96D4: 0x7DB2,\n 0x96D5: 0x8017,\n 0x96D6: 0x8499,\n 0x96D7: 0x5132,\n 0x96D8: 0x6728,\n 0x96D9: 0x9ED9,\n 0x96DA: 0x76EE,\n 0x96DB: 0x6762,\n 0x96DC: 0x52FF,\n 0x96DD: 0x9905,\n 0x96DE: 0x5C24,\n 0x96DF: 0x623B,\n 0x96E0: 0x7C7E,\n 0x96E1: 0x8CB0,\n 0x96E2: 0x554F,\n 0x96E3: 0x60B6,\n 0x96E4: 0x7D0B,\n 0x96E5: 0x9580,\n 0x96E6: 0x5301,\n 0x96E7: 0x4E5F,\n 0x96E8: 0x51B6,\n 0x96E9: 0x591C,\n 0x96EA: 0x723A,\n 0x96EB: 0x8036,\n 0x96EC: 0x91CE,\n 0x96ED: 0x5F25,\n 0x96EE: 0x77E2,\n 0x96EF: 0x5384,\n 0x96F0: 0x5F79,\n 0x96F1: 0x7D04,\n 0x96F2: 0x85AC,\n 0x96F3: 0x8A33,\n 0x96F4: 0x8E8D,\n 0x96F5: 0x9756,\n 0x96F6: 0x67F3,\n 0x96F7: 0x85AE,\n 0x96F8: 0x9453,\n 0x96F9: 0x6109,\n 0x96FA: 0x6108,\n 0x96FB: 0x6CB9,\n 0x96FC: 0x7652,\n 0x9740: 0x8AED,\n 0x9741: 0x8F38,\n 0x9742: 0x552F,\n 0x9743: 0x4F51,\n 0x9744: 0x512A,\n 0x9745: 0x52C7,\n 0x9746: 0x53CB,\n 0x9747: 0x5BA5,\n 0x9748: 0x5E7D,\n 0x9749: 0x60A0,\n 0x974A: 0x6182,\n 0x974B: 0x63D6,\n 0x974C: 0x6709,\n 0x974D: 0x67DA,\n 0x974E: 0x6E67,\n 0x974F: 0x6D8C,\n 0x9750: 0x7336,\n 0x9751: 0x7337,\n 0x9752: 0x7531,\n 0x9753: 0x7950,\n 0x9754: 0x88D5,\n 0x9755: 0x8A98,\n 0x9756: 0x904A,\n 0x9757: 0x9091,\n 0x9758: 0x90F5,\n 0x9759: 0x96C4,\n 0x975A: 0x878D,\n 0x975B: 0x5915,\n 0x975C: 0x4E88,\n 0x975D: 0x4F59,\n 0x975E: 0x4E0E,\n 0x975F: 0x8A89,\n 0x9760: 0x8F3F,\n 0x9761: 0x9810,\n 0x9762: 0x50AD,\n 0x9763: 0x5E7C,\n 0x9764: 0x5996,\n 0x9765: 0x5BB9,\n 0x9766: 0x5EB8,\n 0x9767: 0x63DA,\n 0x9768: 0x63FA,\n 0x9769: 0x64C1,\n 0x976A: 0x66DC,\n 0x976B: 0x694A,\n 0x976C: 0x69D8,\n 0x976D: 0x6D0B,\n 0x976E: 0x6EB6,\n 0x976F: 0x7194,\n 0x9770: 0x7528,\n 0x9771: 0x7AAF,\n 0x9772: 0x7F8A,\n 0x9773: 0x8000,\n 0x9774: 0x8449,\n 0x9775: 0x84C9,\n 0x9776: 0x8981,\n 0x9777: 0x8B21,\n 0x9778: 0x8E0A,\n 0x9779: 0x9065,\n 0x977A: 0x967D,\n 0x977B: 0x990A,\n 0x977C: 0x617E,\n 0x977D: 0x6291,\n 0x977E: 0x6B32,\n 0x9780: 0x6C83,\n 0x9781: 0x6D74,\n 0x9782: 0x7FCC,\n 0x9783: 0x7FFC,\n 0x9784: 0x6DC0,\n 0x9785: 0x7F85,\n 0x9786: 0x87BA,\n 0x9787: 0x88F8,\n 0x9788: 0x6765,\n 0x9789: 0x83B1,\n 0x978A: 0x983C,\n 0x978B: 0x96F7,\n 0x978C: 0x6D1B,\n 0x978D: 0x7D61,\n 0x978E: 0x843D,\n 0x978F: 0x916A,\n 0x9790: 0x4E71,\n 0x9791: 0x5375,\n 0x9792: 0x5D50,\n 0x9793: 0x6B04,\n 0x9794: 0x6FEB,\n 0x9795: 0x85CD,\n 0x9796: 0x862D,\n 0x9797: 0x89A7,\n 0x9798: 0x5229,\n 0x9799: 0x540F,\n 0x979A: 0x5C65,\n 0x979B: 0x674E,\n 0x979C: 0x68A8,\n 0x979D: 0x7406,\n 0x979E: 0x7483,\n 0x979F: 0x75E2,\n 0x97A0: 0x88CF,\n 0x97A1: 0x88E1,\n 0x97A2: 0x91CC,\n 0x97A3: 0x96E2,\n 0x97A4: 0x9678,\n 0x97A5: 0x5F8B,\n 0x97A6: 0x7387,\n 0x97A7: 0x7ACB,\n 0x97A8: 0x844E,\n 0x97A9: 0x63A0,\n 0x97AA: 0x7565,\n 0x97AB: 0x5289,\n 0x97AC: 0x6D41,\n 0x97AD: 0x6E9C,\n 0x97AE: 0x7409,\n 0x97AF: 0x7559,\n 0x97B0: 0x786B,\n 0x97B1: 0x7C92,\n 0x97B2: 0x9686,\n 0x97B3: 0x7ADC,\n 0x97B4: 0x9F8D,\n 0x97B5: 0x4FB6,\n 0x97B6: 0x616E,\n 0x97B7: 0x65C5,\n 0x97B8: 0x865C,\n 0x97B9: 0x4E86,\n 0x97BA: 0x4EAE,\n 0x97BB: 0x50DA,\n 0x97BC: 0x4E21,\n 0x97BD: 0x51CC,\n 0x97BE: 0x5BEE,\n 0x97BF: 0x6599,\n 0x97C0: 0x6881,\n 0x97C1: 0x6DBC,\n 0x97C2: 0x731F,\n 0x97C3: 0x7642,\n 0x97C4: 0x77AD,\n 0x97C5: 0x7A1C,\n 0x97C6: 0x7CE7,\n 0x97C7: 0x826F,\n 0x97C8: 0x8AD2,\n 0x97C9: 0x907C,\n 0x97CA: 0x91CF,\n 0x97CB: 0x9675,\n 0x97CC: 0x9818,\n 0x97CD: 0x529B,\n 0x97CE: 0x7DD1,\n 0x97CF: 0x502B,\n 0x97D0: 0x5398,\n 0x97D1: 0x6797,\n 0x97D2: 0x6DCB,\n 0x97D3: 0x71D0,\n 0x97D4: 0x7433,\n 0x97D5: 0x81E8,\n 0x97D6: 0x8F2A,\n 0x97D7: 0x96A3,\n 0x97D8: 0x9C57,\n 0x97D9: 0x9E9F,\n 0x97DA: 0x7460,\n 0x97DB: 0x5841,\n 0x97DC: 0x6D99,\n 0x97DD: 0x7D2F,\n 0x97DE: 0x985E,\n 0x97DF: 0x4EE4,\n 0x97E0: 0x4F36,\n 0x97E1: 0x4F8B,\n 0x97E2: 0x51B7,\n 0x97E3: 0x52B1,\n 0x97E4: 0x5DBA,\n 0x97E5: 0x601C,\n 0x97E6: 0x73B2,\n 0x97E7: 0x793C,\n 0x97E8: 0x82D3,\n 0x97E9: 0x9234,\n 0x97EA: 0x96B7,\n 0x97EB: 0x96F6,\n 0x97EC: 0x970A,\n 0x97ED: 0x9E97,\n 0x97EE: 0x9F62,\n 0x97EF: 0x66A6,\n 0x97F0: 0x6B74,\n 0x97F1: 0x5217,\n 0x97F2: 0x52A3,\n 0x97F3: 0x70C8,\n 0x97F4: 0x88C2,\n 0x97F5: 0x5EC9,\n 0x97F6: 0x604B,\n 0x97F7: 0x6190,\n 0x97F8: 0x6F23,\n 0x97F9: 0x7149,\n 0x97FA: 0x7C3E,\n 0x97FB: 0x7DF4,\n 0x97FC: 0x806F,\n 0x9840: 0x84EE,\n 0x9841: 0x9023,\n 0x9842: 0x932C,\n 0x9843: 0x5442,\n 0x9844: 0x9B6F,\n 0x9845: 0x6AD3,\n 0x9846: 0x7089,\n 0x9847: 0x8CC2,\n 0x9848: 0x8DEF,\n 0x9849: 0x9732,\n 0x984A: 0x52B4,\n 0x984B: 0x5A41,\n 0x984C: 0x5ECA,\n 0x984D: 0x5F04,\n 0x984E: 0x6717,\n 0x984F: 0x697C,\n 0x9850: 0x6994,\n 0x9851: 0x6D6A,\n 0x9852: 0x6F0F,\n 0x9853: 0x7262,\n 0x9854: 0x72FC,\n 0x9855: 0x7BED,\n 0x9856: 0x8001,\n 0x9857: 0x807E,\n 0x9858: 0x874B,\n 0x9859: 0x90CE,\n 0x985A: 0x516D,\n 0x985B: 0x9E93,\n 0x985C: 0x7984,\n 0x985D: 0x808B,\n 0x985E: 0x9332,\n 0x985F: 0x8AD6,\n 0x9860: 0x502D,\n 0x9861: 0x548C,\n 0x9862: 0x8A71,\n 0x9863: 0x6B6A,\n 0x9864: 0x8CC4,\n 0x9865: 0x8107,\n 0x9866: 0x60D1,\n 0x9867: 0x67A0,\n 0x9868: 0x9DF2,\n 0x9869: 0x4E99,\n 0x986A: 0x4E98,\n 0x986B: 0x9C10,\n 0x986C: 0x8A6B,\n 0x986D: 0x85C1,\n 0x986E: 0x8568,\n 0x986F: 0x6900,\n 0x9870: 0x6E7E,\n 0x9871: 0x7897,\n 0x9872: 0x8155,\n 0x989F: 0x5F0C,\n 0x98A0: 0x4E10,\n 0x98A1: 0x4E15,\n 0x98A2: 0x4E2A,\n 0x98A3: 0x4E31,\n 0x98A4: 0x4E36,\n 0x98A5: 0x4E3C,\n 0x98A6: 0x4E3F,\n 0x98A7: 0x4E42,\n 0x98A8: 0x4E56,\n 0x98A9: 0x4E58,\n 0x98AA: 0x4E82,\n 0x98AB: 0x4E85,\n 0x98AC: 0x8C6B,\n 0x98AD: 0x4E8A,\n 0x98AE: 0x8212,\n 0x98AF: 0x5F0D,\n 0x98B0: 0x4E8E,\n 0x98B1: 0x4E9E,\n 0x98B2: 0x4E9F,\n 0x98B3: 0x4EA0,\n 0x98B4: 0x4EA2,\n 0x98B5: 0x4EB0,\n 0x98B6: 0x4EB3,\n 0x98B7: 0x4EB6,\n 0x98B8: 0x4ECE,\n 0x98B9: 0x4ECD,\n 0x98BA: 0x4EC4,\n 0x98BB: 0x4EC6,\n 0x98BC: 0x4EC2,\n 0x98BD: 0x4ED7,\n 0x98BE: 0x4EDE,\n 0x98BF: 0x4EED,\n 0x98C0: 0x4EDF,\n 0x98C1: 0x4EF7,\n 0x98C2: 0x4F09,\n 0x98C3: 0x4F5A,\n 0x98C4: 0x4F30,\n 0x98C5: 0x4F5B,\n 0x98C6: 0x4F5D,\n 0x98C7: 0x4F57,\n 0x98C8: 0x4F47,\n 0x98C9: 0x4F76,\n 0x98CA: 0x4F88,\n 0x98CB: 0x4F8F,\n 0x98CC: 0x4F98,\n 0x98CD: 0x4F7B,\n 0x98CE: 0x4F69,\n 0x98CF: 0x4F70,\n 0x98D0: 0x4F91,\n 0x98D1: 0x4F6F,\n 0x98D2: 0x4F86,\n 0x98D3: 0x4F96,\n 0x98D4: 0x5118,\n 0x98D5: 0x4FD4,\n 0x98D6: 0x4FDF,\n 0x98D7: 0x4FCE,\n 0x98D8: 0x4FD8,\n 0x98D9: 0x4FDB,\n 0x98DA: 0x4FD1,\n 0x98DB: 0x4FDA,\n 0x98DC: 0x4FD0,\n 0x98DD: 0x4FE4,\n 0x98DE: 0x4FE5,\n 0x98DF: 0x501A,\n 0x98E0: 0x5028,\n 0x98E1: 0x5014,\n 0x98E2: 0x502A,\n 0x98E3: 0x5025,\n 0x98E4: 0x5005,\n 0x98E5: 0x4F1C,\n 0x98E6: 0x4FF6,\n 0x98E7: 0x5021,\n 0x98E8: 0x5029,\n 0x98E9: 0x502C,\n 0x98EA: 0x4FFE,\n 0x98EB: 0x4FEF,\n 0x98EC: 0x5011,\n 0x98ED: 0x5006,\n 0x98EE: 0x5043,\n 0x98EF: 0x5047,\n 0x98F0: 0x6703,\n 0x98F1: 0x5055,\n 0x98F2: 0x5050,\n 0x98F3: 0x5048,\n 0x98F4: 0x505A,\n 0x98F5: 0x5056,\n 0x98F6: 0x506C,\n 0x98F7: 0x5078,\n 0x98F8: 0x5080,\n 0x98F9: 0x509A,\n 0x98FA: 0x5085,\n 0x98FB: 0x50B4,\n 0x98FC: 0x50B2,\n 0x9940: 0x50C9,\n 0x9941: 0x50CA,\n 0x9942: 0x50B3,\n 0x9943: 0x50C2,\n 0x9944: 0x50D6,\n 0x9945: 0x50DE,\n 0x9946: 0x50E5,\n 0x9947: 0x50ED,\n 0x9948: 0x50E3,\n 0x9949: 0x50EE,\n 0x994A: 0x50F9,\n 0x994B: 0x50F5,\n 0x994C: 0x5109,\n 0x994D: 0x5101,\n 0x994E: 0x5102,\n 0x994F: 0x5116,\n 0x9950: 0x5115,\n 0x9951: 0x5114,\n 0x9952: 0x511A,\n 0x9953: 0x5121,\n 0x9954: 0x513A,\n 0x9955: 0x5137,\n 0x9956: 0x513C,\n 0x9957: 0x513B,\n 0x9958: 0x513F,\n 0x9959: 0x5140,\n 0x995A: 0x5152,\n 0x995B: 0x514C,\n 0x995C: 0x5154,\n 0x995D: 0x5162,\n 0x995E: 0x7AF8,\n 0x995F: 0x5169,\n 0x9960: 0x516A,\n 0x9961: 0x516E,\n 0x9962: 0x5180,\n 0x9963: 0x5182,\n 0x9964: 0x56D8,\n 0x9965: 0x518C,\n 0x9966: 0x5189,\n 0x9967: 0x518F,\n 0x9968: 0x5191,\n 0x9969: 0x5193,\n 0x996A: 0x5195,\n 0x996B: 0x5196,\n 0x996C: 0x51A4,\n 0x996D: 0x51A6,\n 0x996E: 0x51A2,\n 0x996F: 0x51A9,\n 0x9970: 0x51AA,\n 0x9971: 0x51AB,\n 0x9972: 0x51B3,\n 0x9973: 0x51B1,\n 0x9974: 0x51B2,\n 0x9975: 0x51B0,\n 0x9976: 0x51B5,\n 0x9977: 0x51BD,\n 0x9978: 0x51C5,\n 0x9979: 0x51C9,\n 0x997A: 0x51DB,\n 0x997B: 0x51E0,\n 0x997C: 0x8655,\n 0x997D: 0x51E9,\n 0x997E: 0x51ED,\n 0x9980: 0x51F0,\n 0x9981: 0x51F5,\n 0x9982: 0x51FE,\n 0x9983: 0x5204,\n 0x9984: 0x520B,\n 0x9985: 0x5214,\n 0x9986: 0x520E,\n 0x9987: 0x5227,\n 0x9988: 0x522A,\n 0x9989: 0x522E,\n 0x998A: 0x5233,\n 0x998B: 0x5239,\n 0x998C: 0x524F,\n 0x998D: 0x5244,\n 0x998E: 0x524B,\n 0x998F: 0x524C,\n 0x9990: 0x525E,\n 0x9991: 0x5254,\n 0x9992: 0x526A,\n 0x9993: 0x5274,\n 0x9994: 0x5269,\n 0x9995: 0x5273,\n 0x9996: 0x527F,\n 0x9997: 0x527D,\n 0x9998: 0x528D,\n 0x9999: 0x5294,\n 0x999A: 0x5292,\n 0x999B: 0x5271,\n 0x999C: 0x5288,\n 0x999D: 0x5291,\n 0x999E: 0x8FA8,\n 0x999F: 0x8FA7,\n 0x99A0: 0x52AC,\n 0x99A1: 0x52AD,\n 0x99A2: 0x52BC,\n 0x99A3: 0x52B5,\n 0x99A4: 0x52C1,\n 0x99A5: 0x52CD,\n 0x99A6: 0x52D7,\n 0x99A7: 0x52DE,\n 0x99A8: 0x52E3,\n 0x99A9: 0x52E6,\n 0x99AA: 0x98ED,\n 0x99AB: 0x52E0,\n 0x99AC: 0x52F3,\n 0x99AD: 0x52F5,\n 0x99AE: 0x52F8,\n 0x99AF: 0x52F9,\n 0x99B0: 0x5306,\n 0x99B1: 0x5308,\n 0x99B2: 0x7538,\n 0x99B3: 0x530D,\n 0x99B4: 0x5310,\n 0x99B5: 0x530F,\n 0x99B6: 0x5315,\n 0x99B7: 0x531A,\n 0x99B8: 0x5323,\n 0x99B9: 0x532F,\n 0x99BA: 0x5331,\n 0x99BB: 0x5333,\n 0x99BC: 0x5338,\n 0x99BD: 0x5340,\n 0x99BE: 0x5346,\n 0x99BF: 0x5345,\n 0x99C0: 0x4E17,\n 0x99C1: 0x5349,\n 0x99C2: 0x534D,\n 0x99C3: 0x51D6,\n 0x99C4: 0x535E,\n 0x99C5: 0x5369,\n 0x99C6: 0x536E,\n 0x99C7: 0x5918,\n 0x99C8: 0x537B,\n 0x99C9: 0x5377,\n 0x99CA: 0x5382,\n 0x99CB: 0x5396,\n 0x99CC: 0x53A0,\n 0x99CD: 0x53A6,\n 0x99CE: 0x53A5,\n 0x99CF: 0x53AE,\n 0x99D0: 0x53B0,\n 0x99D1: 0x53B6,\n 0x99D2: 0x53C3,\n 0x99D3: 0x7C12,\n 0x99D4: 0x96D9,\n 0x99D5: 0x53DF,\n 0x99D6: 0x66FC,\n 0x99D7: 0x71EE,\n 0x99D8: 0x53EE,\n 0x99D9: 0x53E8,\n 0x99DA: 0x53ED,\n 0x99DB: 0x53FA,\n 0x99DC: 0x5401,\n 0x99DD: 0x543D,\n 0x99DE: 0x5440,\n 0x99DF: 0x542C,\n 0x99E0: 0x542D,\n 0x99E1: 0x543C,\n 0x99E2: 0x542E,\n 0x99E3: 0x5436,\n 0x99E4: 0x5429,\n 0x99E5: 0x541D,\n 0x99E6: 0x544E,\n 0x99E7: 0x548F,\n 0x99E8: 0x5475,\n 0x99E9: 0x548E,\n 0x99EA: 0x545F,\n 0x99EB: 0x5471,\n 0x99EC: 0x5477,\n 0x99ED: 0x5470,\n 0x99EE: 0x5492,\n 0x99EF: 0x547B,\n 0x99F0: 0x5480,\n 0x99F1: 0x5476,\n 0x99F2: 0x5484,\n 0x99F3: 0x5490,\n 0x99F4: 0x5486,\n 0x99F5: 0x54C7,\n 0x99F6: 0x54A2,\n 0x99F7: 0x54B8,\n 0x99F8: 0x54A5,\n 0x99F9: 0x54AC,\n 0x99FA: 0x54C4,\n 0x99FB: 0x54C8,\n 0x99FC: 0x54A8,\n 0x9A40: 0x54AB,\n 0x9A41: 0x54C2,\n 0x9A42: 0x54A4,\n 0x9A43: 0x54BE,\n 0x9A44: 0x54BC,\n 0x9A45: 0x54D8,\n 0x9A46: 0x54E5,\n 0x9A47: 0x54E6,\n 0x9A48: 0x550F,\n 0x9A49: 0x5514,\n 0x9A4A: 0x54FD,\n 0x9A4B: 0x54EE,\n 0x9A4C: 0x54ED,\n 0x9A4D: 0x54FA,\n 0x9A4E: 0x54E2,\n 0x9A4F: 0x5539,\n 0x9A50: 0x5540,\n 0x9A51: 0x5563,\n 0x9A52: 0x554C,\n 0x9A53: 0x552E,\n 0x9A54: 0x555C,\n 0x9A55: 0x5545,\n 0x9A56: 0x5556,\n 0x9A57: 0x5557,\n 0x9A58: 0x5538,\n 0x9A59: 0x5533,\n 0x9A5A: 0x555D,\n 0x9A5B: 0x5599,\n 0x9A5C: 0x5580,\n 0x9A5D: 0x54AF,\n 0x9A5E: 0x558A,\n 0x9A5F: 0x559F,\n 0x9A60: 0x557B,\n 0x9A61: 0x557E,\n 0x9A62: 0x5598,\n 0x9A63: 0x559E,\n 0x9A64: 0x55AE,\n 0x9A65: 0x557C,\n 0x9A66: 0x5583,\n 0x9A67: 0x55A9,\n 0x9A68: 0x5587,\n 0x9A69: 0x55A8,\n 0x9A6A: 0x55DA,\n 0x9A6B: 0x55C5,\n 0x9A6C: 0x55DF,\n 0x9A6D: 0x55C4,\n 0x9A6E: 0x55DC,\n 0x9A6F: 0x55E4,\n 0x9A70: 0x55D4,\n 0x9A71: 0x5614,\n 0x9A72: 0x55F7,\n 0x9A73: 0x5616,\n 0x9A74: 0x55FE,\n 0x9A75: 0x55FD,\n 0x9A76: 0x561B,\n 0x9A77: 0x55F9,\n 0x9A78: 0x564E,\n 0x9A79: 0x5650,\n 0x9A7A: 0x71DF,\n 0x9A7B: 0x5634,\n 0x9A7C: 0x5636,\n 0x9A7D: 0x5632,\n 0x9A7E: 0x5638,\n 0x9A80: 0x566B,\n 0x9A81: 0x5664,\n 0x9A82: 0x562F,\n 0x9A83: 0x566C,\n 0x9A84: 0x566A,\n 0x9A85: 0x5686,\n 0x9A86: 0x5680,\n 0x9A87: 0x568A,\n 0x9A88: 0x56A0,\n 0x9A89: 0x5694,\n 0x9A8A: 0x568F,\n 0x9A8B: 0x56A5,\n 0x9A8C: 0x56AE,\n 0x9A8D: 0x56B6,\n 0x9A8E: 0x56B4,\n 0x9A8F: 0x56C2,\n 0x9A90: 0x56BC,\n 0x9A91: 0x56C1,\n 0x9A92: 0x56C3,\n 0x9A93: 0x56C0,\n 0x9A94: 0x56C8,\n 0x9A95: 0x56CE,\n 0x9A96: 0x56D1,\n 0x9A97: 0x56D3,\n 0x9A98: 0x56D7,\n 0x9A99: 0x56EE,\n 0x9A9A: 0x56F9,\n 0x9A9B: 0x5700,\n 0x9A9C: 0x56FF,\n 0x9A9D: 0x5704,\n 0x9A9E: 0x5709,\n 0x9A9F: 0x5708,\n 0x9AA0: 0x570B,\n 0x9AA1: 0x570D,\n 0x9AA2: 0x5713,\n 0x9AA3: 0x5718,\n 0x9AA4: 0x5716,\n 0x9AA5: 0x55C7,\n 0x9AA6: 0x571C,\n 0x9AA7: 0x5726,\n 0x9AA8: 0x5737,\n 0x9AA9: 0x5738,\n 0x9AAA: 0x574E,\n 0x9AAB: 0x573B,\n 0x9AAC: 0x5740,\n 0x9AAD: 0x574F,\n 0x9AAE: 0x5769,\n 0x9AAF: 0x57C0,\n 0x9AB0: 0x5788,\n 0x9AB1: 0x5761,\n 0x9AB2: 0x577F,\n 0x9AB3: 0x5789,\n 0x9AB4: 0x5793,\n 0x9AB5: 0x57A0,\n 0x9AB6: 0x57B3,\n 0x9AB7: 0x57A4,\n 0x9AB8: 0x57AA,\n 0x9AB9: 0x57B0,\n 0x9ABA: 0x57C3,\n 0x9ABB: 0x57C6,\n 0x9ABC: 0x57D4,\n 0x9ABD: 0x57D2,\n 0x9ABE: 0x57D3,\n 0x9ABF: 0x580A,\n 0x9AC0: 0x57D6,\n 0x9AC1: 0x57E3,\n 0x9AC2: 0x580B,\n 0x9AC3: 0x5819,\n 0x9AC4: 0x581D,\n 0x9AC5: 0x5872,\n 0x9AC6: 0x5821,\n 0x9AC7: 0x5862,\n 0x9AC8: 0x584B,\n 0x9AC9: 0x5870,\n 0x9ACA: 0x6BC0,\n 0x9ACB: 0x5852,\n 0x9ACC: 0x583D,\n 0x9ACD: 0x5879,\n 0x9ACE: 0x5885,\n 0x9ACF: 0x58B9,\n 0x9AD0: 0x589F,\n 0x9AD1: 0x58AB,\n 0x9AD2: 0x58BA,\n 0x9AD3: 0x58DE,\n 0x9AD4: 0x58BB,\n 0x9AD5: 0x58B8,\n 0x9AD6: 0x58AE,\n 0x9AD7: 0x58C5,\n 0x9AD8: 0x58D3,\n 0x9AD9: 0x58D1,\n 0x9ADA: 0x58D7,\n 0x9ADB: 0x58D9,\n 0x9ADC: 0x58D8,\n 0x9ADD: 0x58E5,\n 0x9ADE: 0x58DC,\n 0x9ADF: 0x58E4,\n 0x9AE0: 0x58DF,\n 0x9AE1: 0x58EF,\n 0x9AE2: 0x58FA,\n 0x9AE3: 0x58F9,\n 0x9AE4: 0x58FB,\n 0x9AE5: 0x58FC,\n 0x9AE6: 0x58FD,\n 0x9AE7: 0x5902,\n 0x9AE8: 0x590A,\n 0x9AE9: 0x5910,\n 0x9AEA: 0x591B,\n 0x9AEB: 0x68A6,\n 0x9AEC: 0x5925,\n 0x9AED: 0x592C,\n 0x9AEE: 0x592D,\n 0x9AEF: 0x5932,\n 0x9AF0: 0x5938,\n 0x9AF1: 0x593E,\n 0x9AF2: 0x7AD2,\n 0x9AF3: 0x5955,\n 0x9AF4: 0x5950,\n 0x9AF5: 0x594E,\n 0x9AF6: 0x595A,\n 0x9AF7: 0x5958,\n 0x9AF8: 0x5962,\n 0x9AF9: 0x5960,\n 0x9AFA: 0x5967,\n 0x9AFB: 0x596C,\n 0x9AFC: 0x5969,\n 0x9B40: 0x5978,\n 0x9B41: 0x5981,\n 0x9B42: 0x599D,\n 0x9B43: 0x4F5E,\n 0x9B44: 0x4FAB,\n 0x9B45: 0x59A3,\n 0x9B46: 0x59B2,\n 0x9B47: 0x59C6,\n 0x9B48: 0x59E8,\n 0x9B49: 0x59DC,\n 0x9B4A: 0x598D,\n 0x9B4B: 0x59D9,\n 0x9B4C: 0x59DA,\n 0x9B4D: 0x5A25,\n 0x9B4E: 0x5A1F,\n 0x9B4F: 0x5A11,\n 0x9B50: 0x5A1C,\n 0x9B51: 0x5A09,\n 0x9B52: 0x5A1A,\n 0x9B53: 0x5A40,\n 0x9B54: 0x5A6C,\n 0x9B55: 0x5A49,\n 0x9B56: 0x5A35,\n 0x9B57: 0x5A36,\n 0x9B58: 0x5A62,\n 0x9B59: 0x5A6A,\n 0x9B5A: 0x5A9A,\n 0x9B5B: 0x5ABC,\n 0x9B5C: 0x5ABE,\n 0x9B5D: 0x5ACB,\n 0x9B5E: 0x5AC2,\n 0x9B5F: 0x5ABD,\n 0x9B60: 0x5AE3,\n 0x9B61: 0x5AD7,\n 0x9B62: 0x5AE6,\n 0x9B63: 0x5AE9,\n 0x9B64: 0x5AD6,\n 0x9B65: 0x5AFA,\n 0x9B66: 0x5AFB,\n 0x9B67: 0x5B0C,\n 0x9B68: 0x5B0B,\n 0x9B69: 0x5B16,\n 0x9B6A: 0x5B32,\n 0x9B6B: 0x5AD0,\n 0x9B6C: 0x5B2A,\n 0x9B6D: 0x5B36,\n 0x9B6E: 0x5B3E,\n 0x9B6F: 0x5B43,\n 0x9B70: 0x5B45,\n 0x9B71: 0x5B40,\n 0x9B72: 0x5B51,\n 0x9B73: 0x5B55,\n 0x9B74: 0x5B5A,\n 0x9B75: 0x5B5B,\n 0x9B76: 0x5B65,\n 0x9B77: 0x5B69,\n 0x9B78: 0x5B70,\n 0x9B79: 0x5B73,\n 0x9B7A: 0x5B75,\n 0x9B7B: 0x5B78,\n 0x9B7C: 0x6588,\n 0x9B7D: 0x5B7A,\n 0x9B7E: 0x5B80,\n 0x9B80: 0x5B83,\n 0x9B81: 0x5BA6,\n 0x9B82: 0x5BB8,\n 0x9B83: 0x5BC3,\n 0x9B84: 0x5BC7,\n 0x9B85: 0x5BC9,\n 0x9B86: 0x5BD4,\n 0x9B87: 0x5BD0,\n 0x9B88: 0x5BE4,\n 0x9B89: 0x5BE6,\n 0x9B8A: 0x5BE2,\n 0x9B8B: 0x5BDE,\n 0x9B8C: 0x5BE5,\n 0x9B8D: 0x5BEB,\n 0x9B8E: 0x5BF0,\n 0x9B8F: 0x5BF6,\n 0x9B90: 0x5BF3,\n 0x9B91: 0x5C05,\n 0x9B92: 0x5C07,\n 0x9B93: 0x5C08,\n 0x9B94: 0x5C0D,\n 0x9B95: 0x5C13,\n 0x9B96: 0x5C20,\n 0x9B97: 0x5C22,\n 0x9B98: 0x5C28,\n 0x9B99: 0x5C38,\n 0x9B9A: 0x5C39,\n 0x9B9B: 0x5C41,\n 0x9B9C: 0x5C46,\n 0x9B9D: 0x5C4E,\n 0x9B9E: 0x5C53,\n 0x9B9F: 0x5C50,\n 0x9BA0: 0x5C4F,\n 0x9BA1: 0x5B71,\n 0x9BA2: 0x5C6C,\n 0x9BA3: 0x5C6E,\n 0x9BA4: 0x4E62,\n 0x9BA5: 0x5C76,\n 0x9BA6: 0x5C79,\n 0x9BA7: 0x5C8C,\n 0x9BA8: 0x5C91,\n 0x9BA9: 0x5C94,\n 0x9BAA: 0x599B,\n 0x9BAB: 0x5CAB,\n 0x9BAC: 0x5CBB,\n 0x9BAD: 0x5CB6,\n 0x9BAE: 0x5CBC,\n 0x9BAF: 0x5CB7,\n 0x9BB0: 0x5CC5,\n 0x9BB1: 0x5CBE,\n 0x9BB2: 0x5CC7,\n 0x9BB3: 0x5CD9,\n 0x9BB4: 0x5CE9,\n 0x9BB5: 0x5CFD,\n 0x9BB6: 0x5CFA,\n 0x9BB7: 0x5CED,\n 0x9BB8: 0x5D8C,\n 0x9BB9: 0x5CEA,\n 0x9BBA: 0x5D0B,\n 0x9BBB: 0x5D15,\n 0x9BBC: 0x5D17,\n 0x9BBD: 0x5D5C,\n 0x9BBE: 0x5D1F,\n 0x9BBF: 0x5D1B,\n 0x9BC0: 0x5D11,\n 0x9BC1: 0x5D14,\n 0x9BC2: 0x5D22,\n 0x9BC3: 0x5D1A,\n 0x9BC4: 0x5D19,\n 0x9BC5: 0x5D18,\n 0x9BC6: 0x5D4C,\n 0x9BC7: 0x5D52,\n 0x9BC8: 0x5D4E,\n 0x9BC9: 0x5D4B,\n 0x9BCA: 0x5D6C,\n 0x9BCB: 0x5D73,\n 0x9BCC: 0x5D76,\n 0x9BCD: 0x5D87,\n 0x9BCE: 0x5D84,\n 0x9BCF: 0x5D82,\n 0x9BD0: 0x5DA2,\n 0x9BD1: 0x5D9D,\n 0x9BD2: 0x5DAC,\n 0x9BD3: 0x5DAE,\n 0x9BD4: 0x5DBD,\n 0x9BD5: 0x5D90,\n 0x9BD6: 0x5DB7,\n 0x9BD7: 0x5DBC,\n 0x9BD8: 0x5DC9,\n 0x9BD9: 0x5DCD,\n 0x9BDA: 0x5DD3,\n 0x9BDB: 0x5DD2,\n 0x9BDC: 0x5DD6,\n 0x9BDD: 0x5DDB,\n 0x9BDE: 0x5DEB,\n 0x9BDF: 0x5DF2,\n 0x9BE0: 0x5DF5,\n 0x9BE1: 0x5E0B,\n 0x9BE2: 0x5E1A,\n 0x9BE3: 0x5E19,\n 0x9BE4: 0x5E11,\n 0x9BE5: 0x5E1B,\n 0x9BE6: 0x5E36,\n 0x9BE7: 0x5E37,\n 0x9BE8: 0x5E44,\n 0x9BE9: 0x5E43,\n 0x9BEA: 0x5E40,\n 0x9BEB: 0x5E4E,\n 0x9BEC: 0x5E57,\n 0x9BED: 0x5E54,\n 0x9BEE: 0x5E5F,\n 0x9BEF: 0x5E62,\n 0x9BF0: 0x5E64,\n 0x9BF1: 0x5E47,\n 0x9BF2: 0x5E75,\n 0x9BF3: 0x5E76,\n 0x9BF4: 0x5E7A,\n 0x9BF5: 0x9EBC,\n 0x9BF6: 0x5E7F,\n 0x9BF7: 0x5EA0,\n 0x9BF8: 0x5EC1,\n 0x9BF9: 0x5EC2,\n 0x9BFA: 0x5EC8,\n 0x9BFB: 0x5ED0,\n 0x9BFC: 0x5ECF,\n 0x9C40: 0x5ED6,\n 0x9C41: 0x5EE3,\n 0x9C42: 0x5EDD,\n 0x9C43: 0x5EDA,\n 0x9C44: 0x5EDB,\n 0x9C45: 0x5EE2,\n 0x9C46: 0x5EE1,\n 0x9C47: 0x5EE8,\n 0x9C48: 0x5EE9,\n 0x9C49: 0x5EEC,\n 0x9C4A: 0x5EF1,\n 0x9C4B: 0x5EF3,\n 0x9C4C: 0x5EF0,\n 0x9C4D: 0x5EF4,\n 0x9C4E: 0x5EF8,\n 0x9C4F: 0x5EFE,\n 0x9C50: 0x5F03,\n 0x9C51: 0x5F09,\n 0x9C52: 0x5F5D,\n 0x9C53: 0x5F5C,\n 0x9C54: 0x5F0B,\n 0x9C55: 0x5F11,\n 0x9C56: 0x5F16,\n 0x9C57: 0x5F29,\n 0x9C58: 0x5F2D,\n 0x9C59: 0x5F38,\n 0x9C5A: 0x5F41,\n 0x9C5B: 0x5F48,\n 0x9C5C: 0x5F4C,\n 0x9C5D: 0x5F4E,\n 0x9C5E: 0x5F2F,\n 0x9C5F: 0x5F51,\n 0x9C60: 0x5F56,\n 0x9C61: 0x5F57,\n 0x9C62: 0x5F59,\n 0x9C63: 0x5F61,\n 0x9C64: 0x5F6D,\n 0x9C65: 0x5F73,\n 0x9C66: 0x5F77,\n 0x9C67: 0x5F83,\n 0x9C68: 0x5F82,\n 0x9C69: 0x5F7F,\n 0x9C6A: 0x5F8A,\n 0x9C6B: 0x5F88,\n 0x9C6C: 0x5F91,\n 0x9C6D: 0x5F87,\n 0x9C6E: 0x5F9E,\n 0x9C6F: 0x5F99,\n 0x9C70: 0x5F98,\n 0x9C71: 0x5FA0,\n 0x9C72: 0x5FA8,\n 0x9C73: 0x5FAD,\n 0x9C74: 0x5FBC,\n 0x9C75: 0x5FD6,\n 0x9C76: 0x5FFB,\n 0x9C77: 0x5FE4,\n 0x9C78: 0x5FF8,\n 0x9C79: 0x5FF1,\n 0x9C7A: 0x5FDD,\n 0x9C7B: 0x60B3,\n 0x9C7C: 0x5FFF,\n 0x9C7D: 0x6021,\n 0x9C7E: 0x6060,\n 0x9C80: 0x6019,\n 0x9C81: 0x6010,\n 0x9C82: 0x6029,\n 0x9C83: 0x600E,\n 0x9C84: 0x6031,\n 0x9C85: 0x601B,\n 0x9C86: 0x6015,\n 0x9C87: 0x602B,\n 0x9C88: 0x6026,\n 0x9C89: 0x600F,\n 0x9C8A: 0x603A,\n 0x9C8B: 0x605A,\n 0x9C8C: 0x6041,\n 0x9C8D: 0x606A,\n 0x9C8E: 0x6077,\n 0x9C8F: 0x605F,\n 0x9C90: 0x604A,\n 0x9C91: 0x6046,\n 0x9C92: 0x604D,\n 0x9C93: 0x6063,\n 0x9C94: 0x6043,\n 0x9C95: 0x6064,\n 0x9C96: 0x6042,\n 0x9C97: 0x606C,\n 0x9C98: 0x606B,\n 0x9C99: 0x6059,\n 0x9C9A: 0x6081,\n 0x9C9B: 0x608D,\n 0x9C9C: 0x60E7,\n 0x9C9D: 0x6083,\n 0x9C9E: 0x609A,\n 0x9C9F: 0x6084,\n 0x9CA0: 0x609B,\n 0x9CA1: 0x6096,\n 0x9CA2: 0x6097,\n 0x9CA3: 0x6092,\n 0x9CA4: 0x60A7,\n 0x9CA5: 0x608B,\n 0x9CA6: 0x60E1,\n 0x9CA7: 0x60B8,\n 0x9CA8: 0x60E0,\n 0x9CA9: 0x60D3,\n 0x9CAA: 0x60B4,\n 0x9CAB: 0x5FF0,\n 0x9CAC: 0x60BD,\n 0x9CAD: 0x60C6,\n 0x9CAE: 0x60B5,\n 0x9CAF: 0x60D8,\n 0x9CB0: 0x614D,\n 0x9CB1: 0x6115,\n 0x9CB2: 0x6106,\n 0x9CB3: 0x60F6,\n 0x9CB4: 0x60F7,\n 0x9CB5: 0x6100,\n 0x9CB6: 0x60F4,\n 0x9CB7: 0x60FA,\n 0x9CB8: 0x6103,\n 0x9CB9: 0x6121,\n 0x9CBA: 0x60FB,\n 0x9CBB: 0x60F1,\n 0x9CBC: 0x610D,\n 0x9CBD: 0x610E,\n 0x9CBE: 0x6147,\n 0x9CBF: 0x613E,\n 0x9CC0: 0x6128,\n 0x9CC1: 0x6127,\n 0x9CC2: 0x614A,\n 0x9CC3: 0x613F,\n 0x9CC4: 0x613C,\n 0x9CC5: 0x612C,\n 0x9CC6: 0x6134,\n 0x9CC7: 0x613D,\n 0x9CC8: 0x6142,\n 0x9CC9: 0x6144,\n 0x9CCA: 0x6173,\n 0x9CCB: 0x6177,\n 0x9CCC: 0x6158,\n 0x9CCD: 0x6159,\n 0x9CCE: 0x615A,\n 0x9CCF: 0x616B,\n 0x9CD0: 0x6174,\n 0x9CD1: 0x616F,\n 0x9CD2: 0x6165,\n 0x9CD3: 0x6171,\n 0x9CD4: 0x615F,\n 0x9CD5: 0x615D,\n 0x9CD6: 0x6153,\n 0x9CD7: 0x6175,\n 0x9CD8: 0x6199,\n 0x9CD9: 0x6196,\n 0x9CDA: 0x6187,\n 0x9CDB: 0x61AC,\n 0x9CDC: 0x6194,\n 0x9CDD: 0x619A,\n 0x9CDE: 0x618A,\n 0x9CDF: 0x6191,\n 0x9CE0: 0x61AB,\n 0x9CE1: 0x61AE,\n 0x9CE2: 0x61CC,\n 0x9CE3: 0x61CA,\n 0x9CE4: 0x61C9,\n 0x9CE5: 0x61F7,\n 0x9CE6: 0x61C8,\n 0x9CE7: 0x61C3,\n 0x9CE8: 0x61C6,\n 0x9CE9: 0x61BA,\n 0x9CEA: 0x61CB,\n 0x9CEB: 0x7F79,\n 0x9CEC: 0x61CD,\n 0x9CED: 0x61E6,\n 0x9CEE: 0x61E3,\n 0x9CEF: 0x61F6,\n 0x9CF0: 0x61FA,\n 0x9CF1: 0x61F4,\n 0x9CF2: 0x61FF,\n 0x9CF3: 0x61FD,\n 0x9CF4: 0x61FC,\n 0x9CF5: 0x61FE,\n 0x9CF6: 0x6200,\n 0x9CF7: 0x6208,\n 0x9CF8: 0x6209,\n 0x9CF9: 0x620D,\n 0x9CFA: 0x620C,\n 0x9CFB: 0x6214,\n 0x9CFC: 0x621B,\n 0x9D40: 0x621E,\n 0x9D41: 0x6221,\n 0x9D42: 0x622A,\n 0x9D43: 0x622E,\n 0x9D44: 0x6230,\n 0x9D45: 0x6232,\n 0x9D46: 0x6233,\n 0x9D47: 0x6241,\n 0x9D48: 0x624E,\n 0x9D49: 0x625E,\n 0x9D4A: 0x6263,\n 0x9D4B: 0x625B,\n 0x9D4C: 0x6260,\n 0x9D4D: 0x6268,\n 0x9D4E: 0x627C,\n 0x9D4F: 0x6282,\n 0x9D50: 0x6289,\n 0x9D51: 0x627E,\n 0x9D52: 0x6292,\n 0x9D53: 0x6293,\n 0x9D54: 0x6296,\n 0x9D55: 0x62D4,\n 0x9D56: 0x6283,\n 0x9D57: 0x6294,\n 0x9D58: 0x62D7,\n 0x9D59: 0x62D1,\n 0x9D5A: 0x62BB,\n 0x9D5B: 0x62CF,\n 0x9D5C: 0x62FF,\n 0x9D5D: 0x62C6,\n 0x9D5E: 0x64D4,\n 0x9D5F: 0x62C8,\n 0x9D60: 0x62DC,\n 0x9D61: 0x62CC,\n 0x9D62: 0x62CA,\n 0x9D63: 0x62C2,\n 0x9D64: 0x62C7,\n 0x9D65: 0x629B,\n 0x9D66: 0x62C9,\n 0x9D67: 0x630C,\n 0x9D68: 0x62EE,\n 0x9D69: 0x62F1,\n 0x9D6A: 0x6327,\n 0x9D6B: 0x6302,\n 0x9D6C: 0x6308,\n 0x9D6D: 0x62EF,\n 0x9D6E: 0x62F5,\n 0x9D6F: 0x6350,\n 0x9D70: 0x633E,\n 0x9D71: 0x634D,\n 0x9D72: 0x641C,\n 0x9D73: 0x634F,\n 0x9D74: 0x6396,\n 0x9D75: 0x638E,\n 0x9D76: 0x6380,\n 0x9D77: 0x63AB,\n 0x9D78: 0x6376,\n 0x9D79: 0x63A3,\n 0x9D7A: 0x638F,\n 0x9D7B: 0x6389,\n 0x9D7C: 0x639F,\n 0x9D7D: 0x63B5,\n 0x9D7E: 0x636B,\n 0x9D80: 0x6369,\n 0x9D81: 0x63BE,\n 0x9D82: 0x63E9,\n 0x9D83: 0x63C0,\n 0x9D84: 0x63C6,\n 0x9D85: 0x63E3,\n 0x9D86: 0x63C9,\n 0x9D87: 0x63D2,\n 0x9D88: 0x63F6,\n 0x9D89: 0x63C4,\n 0x9D8A: 0x6416,\n 0x9D8B: 0x6434,\n 0x9D8C: 0x6406,\n 0x9D8D: 0x6413,\n 0x9D8E: 0x6426,\n 0x9D8F: 0x6436,\n 0x9D90: 0x651D,\n 0x9D91: 0x6417,\n 0x9D92: 0x6428,\n 0x9D93: 0x640F,\n 0x9D94: 0x6467,\n 0x9D95: 0x646F,\n 0x9D96: 0x6476,\n 0x9D97: 0x644E,\n 0x9D98: 0x652A,\n 0x9D99: 0x6495,\n 0x9D9A: 0x6493,\n 0x9D9B: 0x64A5,\n 0x9D9C: 0x64A9,\n 0x9D9D: 0x6488,\n 0x9D9E: 0x64BC,\n 0x9D9F: 0x64DA,\n 0x9DA0: 0x64D2,\n 0x9DA1: 0x64C5,\n 0x9DA2: 0x64C7,\n 0x9DA3: 0x64BB,\n 0x9DA4: 0x64D8,\n 0x9DA5: 0x64C2,\n 0x9DA6: 0x64F1,\n 0x9DA7: 0x64E7,\n 0x9DA8: 0x8209,\n 0x9DA9: 0x64E0,\n 0x9DAA: 0x64E1,\n 0x9DAB: 0x62AC,\n 0x9DAC: 0x64E3,\n 0x9DAD: 0x64EF,\n 0x9DAE: 0x652C,\n 0x9DAF: 0x64F6,\n 0x9DB0: 0x64F4,\n 0x9DB1: 0x64F2,\n 0x9DB2: 0x64FA,\n 0x9DB3: 0x6500,\n 0x9DB4: 0x64FD,\n 0x9DB5: 0x6518,\n 0x9DB6: 0x651C,\n 0x9DB7: 0x6505,\n 0x9DB8: 0x6524,\n 0x9DB9: 0x6523,\n 0x9DBA: 0x652B,\n 0x9DBB: 0x6534,\n 0x9DBC: 0x6535,\n 0x9DBD: 0x6537,\n 0x9DBE: 0x6536,\n 0x9DBF: 0x6538,\n 0x9DC0: 0x754B,\n 0x9DC1: 0x6548,\n 0x9DC2: 0x6556,\n 0x9DC3: 0x6555,\n 0x9DC4: 0x654D,\n 0x9DC5: 0x6558,\n 0x9DC6: 0x655E,\n 0x9DC7: 0x655D,\n 0x9DC8: 0x6572,\n 0x9DC9: 0x6578,\n 0x9DCA: 0x6582,\n 0x9DCB: 0x6583,\n 0x9DCC: 0x8B8A,\n 0x9DCD: 0x659B,\n 0x9DCE: 0x659F,\n 0x9DCF: 0x65AB,\n 0x9DD0: 0x65B7,\n 0x9DD1: 0x65C3,\n 0x9DD2: 0x65C6,\n 0x9DD3: 0x65C1,\n 0x9DD4: 0x65C4,\n 0x9DD5: 0x65CC,\n 0x9DD6: 0x65D2,\n 0x9DD7: 0x65DB,\n 0x9DD8: 0x65D9,\n 0x9DD9: 0x65E0,\n 0x9DDA: 0x65E1,\n 0x9DDB: 0x65F1,\n 0x9DDC: 0x6772,\n 0x9DDD: 0x660A,\n 0x9DDE: 0x6603,\n 0x9DDF: 0x65FB,\n 0x9DE0: 0x6773,\n 0x9DE1: 0x6635,\n 0x9DE2: 0x6636,\n 0x9DE3: 0x6634,\n 0x9DE4: 0x661C,\n 0x9DE5: 0x664F,\n 0x9DE6: 0x6644,\n 0x9DE7: 0x6649,\n 0x9DE8: 0x6641,\n 0x9DE9: 0x665E,\n 0x9DEA: 0x665D,\n 0x9DEB: 0x6664,\n 0x9DEC: 0x6667,\n 0x9DED: 0x6668,\n 0x9DEE: 0x665F,\n 0x9DEF: 0x6662,\n 0x9DF0: 0x6670,\n 0x9DF1: 0x6683,\n 0x9DF2: 0x6688,\n 0x9DF3: 0x668E,\n 0x9DF4: 0x6689,\n 0x9DF5: 0x6684,\n 0x9DF6: 0x6698,\n 0x9DF7: 0x669D,\n 0x9DF8: 0x66C1,\n 0x9DF9: 0x66B9,\n 0x9DFA: 0x66C9,\n 0x9DFB: 0x66BE,\n 0x9DFC: 0x66BC,\n 0x9E40: 0x66C4,\n 0x9E41: 0x66B8,\n 0x9E42: 0x66D6,\n 0x9E43: 0x66DA,\n 0x9E44: 0x66E0,\n 0x9E45: 0x663F,\n 0x9E46: 0x66E6,\n 0x9E47: 0x66E9,\n 0x9E48: 0x66F0,\n 0x9E49: 0x66F5,\n 0x9E4A: 0x66F7,\n 0x9E4B: 0x670F,\n 0x9E4C: 0x6716,\n 0x9E4D: 0x671E,\n 0x9E4E: 0x6726,\n 0x9E4F: 0x6727,\n 0x9E50: 0x9738,\n 0x9E51: 0x672E,\n 0x9E52: 0x673F,\n 0x9E53: 0x6736,\n 0x9E54: 0x6741,\n 0x9E55: 0x6738,\n 0x9E56: 0x6737,\n 0x9E57: 0x6746,\n 0x9E58: 0x675E,\n 0x9E59: 0x6760,\n 0x9E5A: 0x6759,\n 0x9E5B: 0x6763,\n 0x9E5C: 0x6764,\n 0x9E5D: 0x6789,\n 0x9E5E: 0x6770,\n 0x9E5F: 0x67A9,\n 0x9E60: 0x677C,\n 0x9E61: 0x676A,\n 0x9E62: 0x678C,\n 0x9E63: 0x678B,\n 0x9E64: 0x67A6,\n 0x9E65: 0x67A1,\n 0x9E66: 0x6785,\n 0x9E67: 0x67B7,\n 0x9E68: 0x67EF,\n 0x9E69: 0x67B4,\n 0x9E6A: 0x67EC,\n 0x9E6B: 0x67B3,\n 0x9E6C: 0x67E9,\n 0x9E6D: 0x67B8,\n 0x9E6E: 0x67E4,\n 0x9E6F: 0x67DE,\n 0x9E70: 0x67DD,\n 0x9E71: 0x67E2,\n 0x9E72: 0x67EE,\n 0x9E73: 0x67B9,\n 0x9E74: 0x67CE,\n 0x9E75: 0x67C6,\n 0x9E76: 0x67E7,\n 0x9E77: 0x6A9C,\n 0x9E78: 0x681E,\n 0x9E79: 0x6846,\n 0x9E7A: 0x6829,\n 0x9E7B: 0x6840,\n 0x9E7C: 0x684D,\n 0x9E7D: 0x6832,\n 0x9E7E: 0x684E,\n 0x9E80: 0x68B3,\n 0x9E81: 0x682B,\n 0x9E82: 0x6859,\n 0x9E83: 0x6863,\n 0x9E84: 0x6877,\n 0x9E85: 0x687F,\n 0x9E86: 0x689F,\n 0x9E87: 0x688F,\n 0x9E88: 0x68AD,\n 0x9E89: 0x6894,\n 0x9E8A: 0x689D,\n 0x9E8B: 0x689B,\n 0x9E8C: 0x6883,\n 0x9E8D: 0x6AAE,\n 0x9E8E: 0x68B9,\n 0x9E8F: 0x6874,\n 0x9E90: 0x68B5,\n 0x9E91: 0x68A0,\n 0x9E92: 0x68BA,\n 0x9E93: 0x690F,\n 0x9E94: 0x688D,\n 0x9E95: 0x687E,\n 0x9E96: 0x6901,\n 0x9E97: 0x68CA,\n 0x9E98: 0x6908,\n 0x9E99: 0x68D8,\n 0x9E9A: 0x6922,\n 0x9E9B: 0x6926,\n 0x9E9C: 0x68E1,\n 0x9E9D: 0x690C,\n 0x9E9E: 0x68CD,\n 0x9E9F: 0x68D4,\n 0x9EA0: 0x68E7,\n 0x9EA1: 0x68D5,\n 0x9EA2: 0x6936,\n 0x9EA3: 0x6912,\n 0x9EA4: 0x6904,\n 0x9EA5: 0x68D7,\n 0x9EA6: 0x68E3,\n 0x9EA7: 0x6925,\n 0x9EA8: 0x68F9,\n 0x9EA9: 0x68E0,\n 0x9EAA: 0x68EF,\n 0x9EAB: 0x6928,\n 0x9EAC: 0x692A,\n 0x9EAD: 0x691A,\n 0x9EAE: 0x6923,\n 0x9EAF: 0x6921,\n 0x9EB0: 0x68C6,\n 0x9EB1: 0x6979,\n 0x9EB2: 0x6977,\n 0x9EB3: 0x695C,\n 0x9EB4: 0x6978,\n 0x9EB5: 0x696B,\n 0x9EB6: 0x6954,\n 0x9EB7: 0x697E,\n 0x9EB8: 0x696E,\n 0x9EB9: 0x6939,\n 0x9EBA: 0x6974,\n 0x9EBB: 0x693D,\n 0x9EBC: 0x6959,\n 0x9EBD: 0x6930,\n 0x9EBE: 0x6961,\n 0x9EBF: 0x695E,\n 0x9EC0: 0x695D,\n 0x9EC1: 0x6981,\n 0x9EC2: 0x696A,\n 0x9EC3: 0x69B2,\n 0x9EC4: 0x69AE,\n 0x9EC5: 0x69D0,\n 0x9EC6: 0x69BF,\n 0x9EC7: 0x69C1,\n 0x9EC8: 0x69D3,\n 0x9EC9: 0x69BE,\n 0x9ECA: 0x69CE,\n 0x9ECB: 0x5BE8,\n 0x9ECC: 0x69CA,\n 0x9ECD: 0x69DD,\n 0x9ECE: 0x69BB,\n 0x9ECF: 0x69C3,\n 0x9ED0: 0x69A7,\n 0x9ED1: 0x6A2E,\n 0x9ED2: 0x6991,\n 0x9ED3: 0x69A0,\n 0x9ED4: 0x699C,\n 0x9ED5: 0x6995,\n 0x9ED6: 0x69B4,\n 0x9ED7: 0x69DE,\n 0x9ED8: 0x69E8,\n 0x9ED9: 0x6A02,\n 0x9EDA: 0x6A1B,\n 0x9EDB: 0x69FF,\n 0x9EDC: 0x6B0A,\n 0x9EDD: 0x69F9,\n 0x9EDE: 0x69F2,\n 0x9EDF: 0x69E7,\n 0x9EE0: 0x6A05,\n 0x9EE1: 0x69B1,\n 0x9EE2: 0x6A1E,\n 0x9EE3: 0x69ED,\n 0x9EE4: 0x6A14,\n 0x9EE5: 0x69EB,\n 0x9EE6: 0x6A0A,\n 0x9EE7: 0x6A12,\n 0x9EE8: 0x6AC1,\n 0x9EE9: 0x6A23,\n 0x9EEA: 0x6A13,\n 0x9EEB: 0x6A44,\n 0x9EEC: 0x6A0C,\n 0x9EED: 0x6A72,\n 0x9EEE: 0x6A36,\n 0x9EEF: 0x6A78,\n 0x9EF0: 0x6A47,\n 0x9EF1: 0x6A62,\n 0x9EF2: 0x6A59,\n 0x9EF3: 0x6A66,\n 0x9EF4: 0x6A48,\n 0x9EF5: 0x6A38,\n 0x9EF6: 0x6A22,\n 0x9EF7: 0x6A90,\n 0x9EF8: 0x6A8D,\n 0x9EF9: 0x6AA0,\n 0x9EFA: 0x6A84,\n 0x9EFB: 0x6AA2,\n 0x9EFC: 0x6AA3,\n 0x9F40: 0x6A97,\n 0x9F41: 0x8617,\n 0x9F42: 0x6ABB,\n 0x9F43: 0x6AC3,\n 0x9F44: 0x6AC2,\n 0x9F45: 0x6AB8,\n 0x9F46: 0x6AB3,\n 0x9F47: 0x6AAC,\n 0x9F48: 0x6ADE,\n 0x9F49: 0x6AD1,\n 0x9F4A: 0x6ADF,\n 0x9F4B: 0x6AAA,\n 0x9F4C: 0x6ADA,\n 0x9F4D: 0x6AEA,\n 0x9F4E: 0x6AFB,\n 0x9F4F: 0x6B05,\n 0x9F50: 0x8616,\n 0x9F51: 0x6AFA,\n 0x9F52: 0x6B12,\n 0x9F53: 0x6B16,\n 0x9F54: 0x9B31,\n 0x9F55: 0x6B1F,\n 0x9F56: 0x6B38,\n 0x9F57: 0x6B37,\n 0x9F58: 0x76DC,\n 0x9F59: 0x6B39,\n 0x9F5A: 0x98EE,\n 0x9F5B: 0x6B47,\n 0x9F5C: 0x6B43,\n 0x9F5D: 0x6B49,\n 0x9F5E: 0x6B50,\n 0x9F5F: 0x6B59,\n 0x9F60: 0x6B54,\n 0x9F61: 0x6B5B,\n 0x9F62: 0x6B5F,\n 0x9F63: 0x6B61,\n 0x9F64: 0x6B78,\n 0x9F65: 0x6B79,\n 0x9F66: 0x6B7F,\n 0x9F67: 0x6B80,\n 0x9F68: 0x6B84,\n 0x9F69: 0x6B83,\n 0x9F6A: 0x6B8D,\n 0x9F6B: 0x6B98,\n 0x9F6C: 0x6B95,\n 0x9F6D: 0x6B9E,\n 0x9F6E: 0x6BA4,\n 0x9F6F: 0x6BAA,\n 0x9F70: 0x6BAB,\n 0x9F71: 0x6BAF,\n 0x9F72: 0x6BB2,\n 0x9F73: 0x6BB1,\n 0x9F74: 0x6BB3,\n 0x9F75: 0x6BB7,\n 0x9F76: 0x6BBC,\n 0x9F77: 0x6BC6,\n 0x9F78: 0x6BCB,\n 0x9F79: 0x6BD3,\n 0x9F7A: 0x6BDF,\n 0x9F7B: 0x6BEC,\n 0x9F7C: 0x6BEB,\n 0x9F7D: 0x6BF3,\n 0x9F7E: 0x6BEF,\n 0x9F80: 0x9EBE,\n 0x9F81: 0x6C08,\n 0x9F82: 0x6C13,\n 0x9F83: 0x6C14,\n 0x9F84: 0x6C1B,\n 0x9F85: 0x6C24,\n 0x9F86: 0x6C23,\n 0x9F87: 0x6C5E,\n 0x9F88: 0x6C55,\n 0x9F89: 0x6C62,\n 0x9F8A: 0x6C6A,\n 0x9F8B: 0x6C82,\n 0x9F8C: 0x6C8D,\n 0x9F8D: 0x6C9A,\n 0x9F8E: 0x6C81,\n 0x9F8F: 0x6C9B,\n 0x9F90: 0x6C7E,\n 0x9F91: 0x6C68,\n 0x9F92: 0x6C73,\n 0x9F93: 0x6C92,\n 0x9F94: 0x6C90,\n 0x9F95: 0x6CC4,\n 0x9F96: 0x6CF1,\n 0x9F97: 0x6CD3,\n 0x9F98: 0x6CBD,\n 0x9F99: 0x6CD7,\n 0x9F9A: 0x6CC5,\n 0x9F9B: 0x6CDD,\n 0x9F9C: 0x6CAE,\n 0x9F9D: 0x6CB1,\n 0x9F9E: 0x6CBE,\n 0x9F9F: 0x6CBA,\n 0x9FA0: 0x6CDB,\n 0x9FA1: 0x6CEF,\n 0x9FA2: 0x6CD9,\n 0x9FA3: 0x6CEA,\n 0x9FA4: 0x6D1F,\n 0x9FA5: 0x884D,\n 0x9FA6: 0x6D36,\n 0x9FA7: 0x6D2B,\n 0x9FA8: 0x6D3D,\n 0x9FA9: 0x6D38,\n 0x9FAA: 0x6D19,\n 0x9FAB: 0x6D35,\n 0x9FAC: 0x6D33,\n 0x9FAD: 0x6D12,\n 0x9FAE: 0x6D0C,\n 0x9FAF: 0x6D63,\n 0x9FB0: 0x6D93,\n 0x9FB1: 0x6D64,\n 0x9FB2: 0x6D5A,\n 0x9FB3: 0x6D79,\n 0x9FB4: 0x6D59,\n 0x9FB5: 0x6D8E,\n 0x9FB6: 0x6D95,\n 0x9FB7: 0x6FE4,\n 0x9FB8: 0x6D85,\n 0x9FB9: 0x6DF9,\n 0x9FBA: 0x6E15,\n 0x9FBB: 0x6E0A,\n 0x9FBC: 0x6DB5,\n 0x9FBD: 0x6DC7,\n 0x9FBE: 0x6DE6,\n 0x9FBF: 0x6DB8,\n 0x9FC0: 0x6DC6,\n 0x9FC1: 0x6DEC,\n 0x9FC2: 0x6DDE,\n 0x9FC3: 0x6DCC,\n 0x9FC4: 0x6DE8,\n 0x9FC5: 0x6DD2,\n 0x9FC6: 0x6DC5,\n 0x9FC7: 0x6DFA,\n 0x9FC8: 0x6DD9,\n 0x9FC9: 0x6DE4,\n 0x9FCA: 0x6DD5,\n 0x9FCB: 0x6DEA,\n 0x9FCC: 0x6DEE,\n 0x9FCD: 0x6E2D,\n 0x9FCE: 0x6E6E,\n 0x9FCF: 0x6E2E,\n 0x9FD0: 0x6E19,\n 0x9FD1: 0x6E72,\n 0x9FD2: 0x6E5F,\n 0x9FD3: 0x6E3E,\n 0x9FD4: 0x6E23,\n 0x9FD5: 0x6E6B,\n 0x9FD6: 0x6E2B,\n 0x9FD7: 0x6E76,\n 0x9FD8: 0x6E4D,\n 0x9FD9: 0x6E1F,\n 0x9FDA: 0x6E43,\n 0x9FDB: 0x6E3A,\n 0x9FDC: 0x6E4E,\n 0x9FDD: 0x6E24,\n 0x9FDE: 0x6EFF,\n 0x9FDF: 0x6E1D,\n 0x9FE0: 0x6E38,\n 0x9FE1: 0x6E82,\n 0x9FE2: 0x6EAA,\n 0x9FE3: 0x6E98,\n 0x9FE4: 0x6EC9,\n 0x9FE5: 0x6EB7,\n 0x9FE6: 0x6ED3,\n 0x9FE7: 0x6EBD,\n 0x9FE8: 0x6EAF,\n 0x9FE9: 0x6EC4,\n 0x9FEA: 0x6EB2,\n 0x9FEB: 0x6ED4,\n 0x9FEC: 0x6ED5,\n 0x9FED: 0x6E8F,\n 0x9FEE: 0x6EA5,\n 0x9FEF: 0x6EC2,\n 0x9FF0: 0x6E9F,\n 0x9FF1: 0x6F41,\n 0x9FF2: 0x6F11,\n 0x9FF3: 0x704C,\n 0x9FF4: 0x6EEC,\n 0x9FF5: 0x6EF8,\n 0x9FF6: 0x6EFE,\n 0x9FF7: 0x6F3F,\n 0x9FF8: 0x6EF2,\n 0x9FF9: 0x6F31,\n 0x9FFA: 0x6EEF,\n 0x9FFB: 0x6F32,\n 0x9FFC: 0x6ECC,\n 0xA1: 0xFF61,\n 0xA2: 0xFF62,\n 0xA3: 0xFF63,\n 0xA4: 0xFF64,\n 0xA5: 0xFF65,\n 0xA6: 0xFF66,\n 0xA7: 0xFF67,\n 0xA8: 0xFF68,\n 0xA9: 0xFF69,\n 0xAA: 0xFF6A,\n 0xAB: 0xFF6B,\n 0xAC: 0xFF6C,\n 0xAD: 0xFF6D,\n 0xAE: 0xFF6E,\n 0xAF: 0xFF6F,\n 0xB0: 0xFF70,\n 0xB1: 0xFF71,\n 0xB2: 0xFF72,\n 0xB3: 0xFF73,\n 0xB4: 0xFF74,\n 0xB5: 0xFF75,\n 0xB6: 0xFF76,\n 0xB7: 0xFF77,\n 0xB8: 0xFF78,\n 0xB9: 0xFF79,\n 0xBA: 0xFF7A,\n 0xBB: 0xFF7B,\n 0xBC: 0xFF7C,\n 0xBD: 0xFF7D,\n 0xBE: 0xFF7E,\n 0xBF: 0xFF7F,\n 0xC0: 0xFF80,\n 0xC1: 0xFF81,\n 0xC2: 0xFF82,\n 0xC3: 0xFF83,\n 0xC4: 0xFF84,\n 0xC5: 0xFF85,\n 0xC6: 0xFF86,\n 0xC7: 0xFF87,\n 0xC8: 0xFF88,\n 0xC9: 0xFF89,\n 0xCA: 0xFF8A,\n 0xCB: 0xFF8B,\n 0xCC: 0xFF8C,\n 0xCD: 0xFF8D,\n 0xCE: 0xFF8E,\n 0xCF: 0xFF8F,\n 0xD0: 0xFF90,\n 0xD1: 0xFF91,\n 0xD2: 0xFF92,\n 0xD3: 0xFF93,\n 0xD4: 0xFF94,\n 0xD5: 0xFF95,\n 0xD6: 0xFF96,\n 0xD7: 0xFF97,\n 0xD8: 0xFF98,\n 0xD9: 0xFF99,\n 0xDA: 0xFF9A,\n 0xDB: 0xFF9B,\n 0xDC: 0xFF9C,\n 0xDD: 0xFF9D,\n 0xDE: 0xFF9E,\n 0xDF: 0xFF9F,\n 0xE040: 0x6F3E,\n 0xE041: 0x6F13,\n 0xE042: 0x6EF7,\n 0xE043: 0x6F86,\n 0xE044: 0x6F7A,\n 0xE045: 0x6F78,\n 0xE046: 0x6F81,\n 0xE047: 0x6F80,\n 0xE048: 0x6F6F,\n 0xE049: 0x6F5B,\n 0xE04A: 0x6FF3,\n 0xE04B: 0x6F6D,\n 0xE04C: 0x6F82,\n 0xE04D: 0x6F7C,\n 0xE04E: 0x6F58,\n 0xE04F: 0x6F8E,\n 0xE050: 0x6F91,\n 0xE051: 0x6FC2,\n 0xE052: 0x6F66,\n 0xE053: 0x6FB3,\n 0xE054: 0x6FA3,\n 0xE055: 0x6FA1,\n 0xE056: 0x6FA4,\n 0xE057: 0x6FB9,\n 0xE058: 0x6FC6,\n 0xE059: 0x6FAA,\n 0xE05A: 0x6FDF,\n 0xE05B: 0x6FD5,\n 0xE05C: 0x6FEC,\n 0xE05D: 0x6FD4,\n 0xE05E: 0x6FD8,\n 0xE05F: 0x6FF1,\n 0xE060: 0x6FEE,\n 0xE061: 0x6FDB,\n 0xE062: 0x7009,\n 0xE063: 0x700B,\n 0xE064: 0x6FFA,\n 0xE065: 0x7011,\n 0xE066: 0x7001,\n 0xE067: 0x700F,\n 0xE068: 0x6FFE,\n 0xE069: 0x701B,\n 0xE06A: 0x701A,\n 0xE06B: 0x6F74,\n 0xE06C: 0x701D,\n 0xE06D: 0x7018,\n 0xE06E: 0x701F,\n 0xE06F: 0x7030,\n 0xE070: 0x703E,\n 0xE071: 0x7032,\n 0xE072: 0x7051,\n 0xE073: 0x7063,\n 0xE074: 0x7099,\n 0xE075: 0x7092,\n 0xE076: 0x70AF,\n 0xE077: 0x70F1,\n 0xE078: 0x70AC,\n 0xE079: 0x70B8,\n 0xE07A: 0x70B3,\n 0xE07B: 0x70AE,\n 0xE07C: 0x70DF,\n 0xE07D: 0x70CB,\n 0xE07E: 0x70DD,\n 0xE080: 0x70D9,\n 0xE081: 0x7109,\n 0xE082: 0x70FD,\n 0xE083: 0x711C,\n 0xE084: 0x7119,\n 0xE085: 0x7165,\n 0xE086: 0x7155,\n 0xE087: 0x7188,\n 0xE088: 0x7166,\n 0xE089: 0x7162,\n 0xE08A: 0x714C,\n 0xE08B: 0x7156,\n 0xE08C: 0x716C,\n 0xE08D: 0x718F,\n 0xE08E: 0x71FB,\n 0xE08F: 0x7184,\n 0xE090: 0x7195,\n 0xE091: 0x71A8,\n 0xE092: 0x71AC,\n 0xE093: 0x71D7,\n 0xE094: 0x71B9,\n 0xE095: 0x71BE,\n 0xE096: 0x71D2,\n 0xE097: 0x71C9,\n 0xE098: 0x71D4,\n 0xE099: 0x71CE,\n 0xE09A: 0x71E0,\n 0xE09B: 0x71EC,\n 0xE09C: 0x71E7,\n 0xE09D: 0x71F5,\n 0xE09E: 0x71FC,\n 0xE09F: 0x71F9,\n 0xE0A0: 0x71FF,\n 0xE0A1: 0x720D,\n 0xE0A2: 0x7210,\n 0xE0A3: 0x721B,\n 0xE0A4: 0x7228,\n 0xE0A5: 0x722D,\n 0xE0A6: 0x722C,\n 0xE0A7: 0x7230,\n 0xE0A8: 0x7232,\n 0xE0A9: 0x723B,\n 0xE0AA: 0x723C,\n 0xE0AB: 0x723F,\n 0xE0AC: 0x7240,\n 0xE0AD: 0x7246,\n 0xE0AE: 0x724B,\n 0xE0AF: 0x7258,\n 0xE0B0: 0x7274,\n 0xE0B1: 0x727E,\n 0xE0B2: 0x7282,\n 0xE0B3: 0x7281,\n 0xE0B4: 0x7287,\n 0xE0B5: 0x7292,\n 0xE0B6: 0x7296,\n 0xE0B7: 0x72A2,\n 0xE0B8: 0x72A7,\n 0xE0B9: 0x72B9,\n 0xE0BA: 0x72B2,\n 0xE0BB: 0x72C3,\n 0xE0BC: 0x72C6,\n 0xE0BD: 0x72C4,\n 0xE0BE: 0x72CE,\n 0xE0BF: 0x72D2,\n 0xE0C0: 0x72E2,\n 0xE0C1: 0x72E0,\n 0xE0C2: 0x72E1,\n 0xE0C3: 0x72F9,\n 0xE0C4: 0x72F7,\n 0xE0C5: 0x500F,\n 0xE0C6: 0x7317,\n 0xE0C7: 0x730A,\n 0xE0C8: 0x731C,\n 0xE0C9: 0x7316,\n 0xE0CA: 0x731D,\n 0xE0CB: 0x7334,\n 0xE0CC: 0x732F,\n 0xE0CD: 0x7329,\n 0xE0CE: 0x7325,\n 0xE0CF: 0x733E,\n 0xE0D0: 0x734E,\n 0xE0D1: 0x734F,\n 0xE0D2: 0x9ED8,\n 0xE0D3: 0x7357,\n 0xE0D4: 0x736A,\n 0xE0D5: 0x7368,\n 0xE0D6: 0x7370,\n 0xE0D7: 0x7378,\n 0xE0D8: 0x7375,\n 0xE0D9: 0x737B,\n 0xE0DA: 0x737A,\n 0xE0DB: 0x73C8,\n 0xE0DC: 0x73B3,\n 0xE0DD: 0x73CE,\n 0xE0DE: 0x73BB,\n 0xE0DF: 0x73C0,\n 0xE0E0: 0x73E5,\n 0xE0E1: 0x73EE,\n 0xE0E2: 0x73DE,\n 0xE0E3: 0x74A2,\n 0xE0E4: 0x7405,\n 0xE0E5: 0x746F,\n 0xE0E6: 0x7425,\n 0xE0E7: 0x73F8,\n 0xE0E8: 0x7432,\n 0xE0E9: 0x743A,\n 0xE0EA: 0x7455,\n 0xE0EB: 0x743F,\n 0xE0EC: 0x745F,\n 0xE0ED: 0x7459,\n 0xE0EE: 0x7441,\n 0xE0EF: 0x745C,\n 0xE0F0: 0x7469,\n 0xE0F1: 0x7470,\n 0xE0F2: 0x7463,\n 0xE0F3: 0x746A,\n 0xE0F4: 0x7476,\n 0xE0F5: 0x747E,\n 0xE0F6: 0x748B,\n 0xE0F7: 0x749E,\n 0xE0F8: 0x74A7,\n 0xE0F9: 0x74CA,\n 0xE0FA: 0x74CF,\n 0xE0FB: 0x74D4,\n 0xE0FC: 0x73F1,\n 0xE140: 0x74E0,\n 0xE141: 0x74E3,\n 0xE142: 0x74E7,\n 0xE143: 0x74E9,\n 0xE144: 0x74EE,\n 0xE145: 0x74F2,\n 0xE146: 0x74F0,\n 0xE147: 0x74F1,\n 0xE148: 0x74F8,\n 0xE149: 0x74F7,\n 0xE14A: 0x7504,\n 0xE14B: 0x7503,\n 0xE14C: 0x7505,\n 0xE14D: 0x750C,\n 0xE14E: 0x750E,\n 0xE14F: 0x750D,\n 0xE150: 0x7515,\n 0xE151: 0x7513,\n 0xE152: 0x751E,\n 0xE153: 0x7526,\n 0xE154: 0x752C,\n 0xE155: 0x753C,\n 0xE156: 0x7544,\n 0xE157: 0x754D,\n 0xE158: 0x754A,\n 0xE159: 0x7549,\n 0xE15A: 0x755B,\n 0xE15B: 0x7546,\n 0xE15C: 0x755A,\n 0xE15D: 0x7569,\n 0xE15E: 0x7564,\n 0xE15F: 0x7567,\n 0xE160: 0x756B,\n 0xE161: 0x756D,\n 0xE162: 0x7578,\n 0xE163: 0x7576,\n 0xE164: 0x7586,\n 0xE165: 0x7587,\n 0xE166: 0x7574,\n 0xE167: 0x758A,\n 0xE168: 0x7589,\n 0xE169: 0x7582,\n 0xE16A: 0x7594,\n 0xE16B: 0x759A,\n 0xE16C: 0x759D,\n 0xE16D: 0x75A5,\n 0xE16E: 0x75A3,\n 0xE16F: 0x75C2,\n 0xE170: 0x75B3,\n 0xE171: 0x75C3,\n 0xE172: 0x75B5,\n 0xE173: 0x75BD,\n 0xE174: 0x75B8,\n 0xE175: 0x75BC,\n 0xE176: 0x75B1,\n 0xE177: 0x75CD,\n 0xE178: 0x75CA,\n 0xE179: 0x75D2,\n 0xE17A: 0x75D9,\n 0xE17B: 0x75E3,\n 0xE17C: 0x75DE,\n 0xE17D: 0x75FE,\n 0xE17E: 0x75FF,\n 0xE180: 0x75FC,\n 0xE181: 0x7601,\n 0xE182: 0x75F0,\n 0xE183: 0x75FA,\n 0xE184: 0x75F2,\n 0xE185: 0x75F3,\n 0xE186: 0x760B,\n 0xE187: 0x760D,\n 0xE188: 0x7609,\n 0xE189: 0x761F,\n 0xE18A: 0x7627,\n 0xE18B: 0x7620,\n 0xE18C: 0x7621,\n 0xE18D: 0x7622,\n 0xE18E: 0x7624,\n 0xE18F: 0x7634,\n 0xE190: 0x7630,\n 0xE191: 0x763B,\n 0xE192: 0x7647,\n 0xE193: 0x7648,\n 0xE194: 0x7646,\n 0xE195: 0x765C,\n 0xE196: 0x7658,\n 0xE197: 0x7661,\n 0xE198: 0x7662,\n 0xE199: 0x7668,\n 0xE19A: 0x7669,\n 0xE19B: 0x766A,\n 0xE19C: 0x7667,\n 0xE19D: 0x766C,\n 0xE19E: 0x7670,\n 0xE19F: 0x7672,\n 0xE1A0: 0x7676,\n 0xE1A1: 0x7678,\n 0xE1A2: 0x767C,\n 0xE1A3: 0x7680,\n 0xE1A4: 0x7683,\n 0xE1A5: 0x7688,\n 0xE1A6: 0x768B,\n 0xE1A7: 0x768E,\n 0xE1A8: 0x7696,\n 0xE1A9: 0x7693,\n 0xE1AA: 0x7699,\n 0xE1AB: 0x769A,\n 0xE1AC: 0x76B0,\n 0xE1AD: 0x76B4,\n 0xE1AE: 0x76B8,\n 0xE1AF: 0x76B9,\n 0xE1B0: 0x76BA,\n 0xE1B1: 0x76C2,\n 0xE1B2: 0x76CD,\n 0xE1B3: 0x76D6,\n 0xE1B4: 0x76D2,\n 0xE1B5: 0x76DE,\n 0xE1B6: 0x76E1,\n 0xE1B7: 0x76E5,\n 0xE1B8: 0x76E7,\n 0xE1B9: 0x76EA,\n 0xE1BA: 0x862F,\n 0xE1BB: 0x76FB,\n 0xE1BC: 0x7708,\n 0xE1BD: 0x7707,\n 0xE1BE: 0x7704,\n 0xE1BF: 0x7729,\n 0xE1C0: 0x7724,\n 0xE1C1: 0x771E,\n 0xE1C2: 0x7725,\n 0xE1C3: 0x7726,\n 0xE1C4: 0x771B,\n 0xE1C5: 0x7737,\n 0xE1C6: 0x7738,\n 0xE1C7: 0x7747,\n 0xE1C8: 0x775A,\n 0xE1C9: 0x7768,\n 0xE1CA: 0x776B,\n 0xE1CB: 0x775B,\n 0xE1CC: 0x7765,\n 0xE1CD: 0x777F,\n 0xE1CE: 0x777E,\n 0xE1CF: 0x7779,\n 0xE1D0: 0x778E,\n 0xE1D1: 0x778B,\n 0xE1D2: 0x7791,\n 0xE1D3: 0x77A0,\n 0xE1D4: 0x779E,\n 0xE1D5: 0x77B0,\n 0xE1D6: 0x77B6,\n 0xE1D7: 0x77B9,\n 0xE1D8: 0x77BF,\n 0xE1D9: 0x77BC,\n 0xE1DA: 0x77BD,\n 0xE1DB: 0x77BB,\n 0xE1DC: 0x77C7,\n 0xE1DD: 0x77CD,\n 0xE1DE: 0x77D7,\n 0xE1DF: 0x77DA,\n 0xE1E0: 0x77DC,\n 0xE1E1: 0x77E3,\n 0xE1E2: 0x77EE,\n 0xE1E3: 0x77FC,\n 0xE1E4: 0x780C,\n 0xE1E5: 0x7812,\n 0xE1E6: 0x7926,\n 0xE1E7: 0x7820,\n 0xE1E8: 0x792A,\n 0xE1E9: 0x7845,\n 0xE1EA: 0x788E,\n 0xE1EB: 0x7874,\n 0xE1EC: 0x7886,\n 0xE1ED: 0x787C,\n 0xE1EE: 0x789A,\n 0xE1EF: 0x788C,\n 0xE1F0: 0x78A3,\n 0xE1F1: 0x78B5,\n 0xE1F2: 0x78AA,\n 0xE1F3: 0x78AF,\n 0xE1F4: 0x78D1,\n 0xE1F5: 0x78C6,\n 0xE1F6: 0x78CB,\n 0xE1F7: 0x78D4,\n 0xE1F8: 0x78BE,\n 0xE1F9: 0x78BC,\n 0xE1FA: 0x78C5,\n 0xE1FB: 0x78CA,\n 0xE1FC: 0x78EC,\n 0xE240: 0x78E7,\n 0xE241: 0x78DA,\n 0xE242: 0x78FD,\n 0xE243: 0x78F4,\n 0xE244: 0x7907,\n 0xE245: 0x7912,\n 0xE246: 0x7911,\n 0xE247: 0x7919,\n 0xE248: 0x792C,\n 0xE249: 0x792B,\n 0xE24A: 0x7940,\n 0xE24B: 0x7960,\n 0xE24C: 0x7957,\n 0xE24D: 0x795F,\n 0xE24E: 0x795A,\n 0xE24F: 0x7955,\n 0xE250: 0x7953,\n 0xE251: 0x797A,\n 0xE252: 0x797F,\n 0xE253: 0x798A,\n 0xE254: 0x799D,\n 0xE255: 0x79A7,\n 0xE256: 0x9F4B,\n 0xE257: 0x79AA,\n 0xE258: 0x79AE,\n 0xE259: 0x79B3,\n 0xE25A: 0x79B9,\n 0xE25B: 0x79BA,\n 0xE25C: 0x79C9,\n 0xE25D: 0x79D5,\n 0xE25E: 0x79E7,\n 0xE25F: 0x79EC,\n 0xE260: 0x79E1,\n 0xE261: 0x79E3,\n 0xE262: 0x7A08,\n 0xE263: 0x7A0D,\n 0xE264: 0x7A18,\n 0xE265: 0x7A19,\n 0xE266: 0x7A20,\n 0xE267: 0x7A1F,\n 0xE268: 0x7980,\n 0xE269: 0x7A31,\n 0xE26A: 0x7A3B,\n 0xE26B: 0x7A3E,\n 0xE26C: 0x7A37,\n 0xE26D: 0x7A43,\n 0xE26E: 0x7A57,\n 0xE26F: 0x7A49,\n 0xE270: 0x7A61,\n 0xE271: 0x7A62,\n 0xE272: 0x7A69,\n 0xE273: 0x9F9D,\n 0xE274: 0x7A70,\n 0xE275: 0x7A79,\n 0xE276: 0x7A7D,\n 0xE277: 0x7A88,\n 0xE278: 0x7A97,\n 0xE279: 0x7A95,\n 0xE27A: 0x7A98,\n 0xE27B: 0x7A96,\n 0xE27C: 0x7AA9,\n 0xE27D: 0x7AC8,\n 0xE27E: 0x7AB0,\n 0xE280: 0x7AB6,\n 0xE281: 0x7AC5,\n 0xE282: 0x7AC4,\n 0xE283: 0x7ABF,\n 0xE284: 0x9083,\n 0xE285: 0x7AC7,\n 0xE286: 0x7ACA,\n 0xE287: 0x7ACD,\n 0xE288: 0x7ACF,\n 0xE289: 0x7AD5,\n 0xE28A: 0x7AD3,\n 0xE28B: 0x7AD9,\n 0xE28C: 0x7ADA,\n 0xE28D: 0x7ADD,\n 0xE28E: 0x7AE1,\n 0xE28F: 0x7AE2,\n 0xE290: 0x7AE6,\n 0xE291: 0x7AED,\n 0xE292: 0x7AF0,\n 0xE293: 0x7B02,\n 0xE294: 0x7B0F,\n 0xE295: 0x7B0A,\n 0xE296: 0x7B06,\n 0xE297: 0x7B33,\n 0xE298: 0x7B18,\n 0xE299: 0x7B19,\n 0xE29A: 0x7B1E,\n 0xE29B: 0x7B35,\n 0xE29C: 0x7B28,\n 0xE29D: 0x7B36,\n 0xE29E: 0x7B50,\n 0xE29F: 0x7B7A,\n 0xE2A0: 0x7B04,\n 0xE2A1: 0x7B4D,\n 0xE2A2: 0x7B0B,\n 0xE2A3: 0x7B4C,\n 0xE2A4: 0x7B45,\n 0xE2A5: 0x7B75,\n 0xE2A6: 0x7B65,\n 0xE2A7: 0x7B74,\n 0xE2A8: 0x7B67,\n 0xE2A9: 0x7B70,\n 0xE2AA: 0x7B71,\n 0xE2AB: 0x7B6C,\n 0xE2AC: 0x7B6E,\n 0xE2AD: 0x7B9D,\n 0xE2AE: 0x7B98,\n 0xE2AF: 0x7B9F,\n 0xE2B0: 0x7B8D,\n 0xE2B1: 0x7B9C,\n 0xE2B2: 0x7B9A,\n 0xE2B3: 0x7B8B,\n 0xE2B4: 0x7B92,\n 0xE2B5: 0x7B8F,\n 0xE2B6: 0x7B5D,\n 0xE2B7: 0x7B99,\n 0xE2B8: 0x7BCB,\n 0xE2B9: 0x7BC1,\n 0xE2BA: 0x7BCC,\n 0xE2BB: 0x7BCF,\n 0xE2BC: 0x7BB4,\n 0xE2BD: 0x7BC6,\n 0xE2BE: 0x7BDD,\n 0xE2BF: 0x7BE9,\n 0xE2C0: 0x7C11,\n 0xE2C1: 0x7C14,\n 0xE2C2: 0x7BE6,\n 0xE2C3: 0x7BE5,\n 0xE2C4: 0x7C60,\n 0xE2C5: 0x7C00,\n 0xE2C6: 0x7C07,\n 0xE2C7: 0x7C13,\n 0xE2C8: 0x7BF3,\n 0xE2C9: 0x7BF7,\n 0xE2CA: 0x7C17,\n 0xE2CB: 0x7C0D,\n 0xE2CC: 0x7BF6,\n 0xE2CD: 0x7C23,\n 0xE2CE: 0x7C27,\n 0xE2CF: 0x7C2A,\n 0xE2D0: 0x7C1F,\n 0xE2D1: 0x7C37,\n 0xE2D2: 0x7C2B,\n 0xE2D3: 0x7C3D,\n 0xE2D4: 0x7C4C,\n 0xE2D5: 0x7C43,\n 0xE2D6: 0x7C54,\n 0xE2D7: 0x7C4F,\n 0xE2D8: 0x7C40,\n 0xE2D9: 0x7C50,\n 0xE2DA: 0x7C58,\n 0xE2DB: 0x7C5F,\n 0xE2DC: 0x7C64,\n 0xE2DD: 0x7C56,\n 0xE2DE: 0x7C65,\n 0xE2DF: 0x7C6C,\n 0xE2E0: 0x7C75,\n 0xE2E1: 0x7C83,\n 0xE2E2: 0x7C90,\n 0xE2E3: 0x7CA4,\n 0xE2E4: 0x7CAD,\n 0xE2E5: 0x7CA2,\n 0xE2E6: 0x7CAB,\n 0xE2E7: 0x7CA1,\n 0xE2E8: 0x7CA8,\n 0xE2E9: 0x7CB3,\n 0xE2EA: 0x7CB2,\n 0xE2EB: 0x7CB1,\n 0xE2EC: 0x7CAE,\n 0xE2ED: 0x7CB9,\n 0xE2EE: 0x7CBD,\n 0xE2EF: 0x7CC0,\n 0xE2F0: 0x7CC5,\n 0xE2F1: 0x7CC2,\n 0xE2F2: 0x7CD8,\n 0xE2F3: 0x7CD2,\n 0xE2F4: 0x7CDC,\n 0xE2F5: 0x7CE2,\n 0xE2F6: 0x9B3B,\n 0xE2F7: 0x7CEF,\n 0xE2F8: 0x7CF2,\n 0xE2F9: 0x7CF4,\n 0xE2FA: 0x7CF6,\n 0xE2FB: 0x7CFA,\n 0xE2FC: 0x7D06,\n 0xE340: 0x7D02,\n 0xE341: 0x7D1C,\n 0xE342: 0x7D15,\n 0xE343: 0x7D0A,\n 0xE344: 0x7D45,\n 0xE345: 0x7D4B,\n 0xE346: 0x7D2E,\n 0xE347: 0x7D32,\n 0xE348: 0x7D3F,\n 0xE349: 0x7D35,\n 0xE34A: 0x7D46,\n 0xE34B: 0x7D73,\n 0xE34C: 0x7D56,\n 0xE34D: 0x7D4E,\n 0xE34E: 0x7D72,\n 0xE34F: 0x7D68,\n 0xE350: 0x7D6E,\n 0xE351: 0x7D4F,\n 0xE352: 0x7D63,\n 0xE353: 0x7D93,\n 0xE354: 0x7D89,\n 0xE355: 0x7D5B,\n 0xE356: 0x7D8F,\n 0xE357: 0x7D7D,\n 0xE358: 0x7D9B,\n 0xE359: 0x7DBA,\n 0xE35A: 0x7DAE,\n 0xE35B: 0x7DA3,\n 0xE35C: 0x7DB5,\n 0xE35D: 0x7DC7,\n 0xE35E: 0x7DBD,\n 0xE35F: 0x7DAB,\n 0xE360: 0x7E3D,\n 0xE361: 0x7DA2,\n 0xE362: 0x7DAF,\n 0xE363: 0x7DDC,\n 0xE364: 0x7DB8,\n 0xE365: 0x7D9F,\n 0xE366: 0x7DB0,\n 0xE367: 0x7DD8,\n 0xE368: 0x7DDD,\n 0xE369: 0x7DE4,\n 0xE36A: 0x7DDE,\n 0xE36B: 0x7DFB,\n 0xE36C: 0x7DF2,\n 0xE36D: 0x7DE1,\n 0xE36E: 0x7E05,\n 0xE36F: 0x7E0A,\n 0xE370: 0x7E23,\n 0xE371: 0x7E21,\n 0xE372: 0x7E12,\n 0xE373: 0x7E31,\n 0xE374: 0x7E1F,\n 0xE375: 0x7E09,\n 0xE376: 0x7E0B,\n 0xE377: 0x7E22,\n 0xE378: 0x7E46,\n 0xE379: 0x7E66,\n 0xE37A: 0x7E3B,\n 0xE37B: 0x7E35,\n 0xE37C: 0x7E39,\n 0xE37D: 0x7E43,\n 0xE37E: 0x7E37,\n 0xE380: 0x7E32,\n 0xE381: 0x7E3A,\n 0xE382: 0x7E67,\n 0xE383: 0x7E5D,\n 0xE384: 0x7E56,\n 0xE385: 0x7E5E,\n 0xE386: 0x7E59,\n 0xE387: 0x7E5A,\n 0xE388: 0x7E79,\n 0xE389: 0x7E6A,\n 0xE38A: 0x7E69,\n 0xE38B: 0x7E7C,\n 0xE38C: 0x7E7B,\n 0xE38D: 0x7E83,\n 0xE38E: 0x7DD5,\n 0xE38F: 0x7E7D,\n 0xE390: 0x8FAE,\n 0xE391: 0x7E7F,\n 0xE392: 0x7E88,\n 0xE393: 0x7E89,\n 0xE394: 0x7E8C,\n 0xE395: 0x7E92,\n 0xE396: 0x7E90,\n 0xE397: 0x7E93,\n 0xE398: 0x7E94,\n 0xE399: 0x7E96,\n 0xE39A: 0x7E8E,\n 0xE39B: 0x7E9B,\n 0xE39C: 0x7E9C,\n 0xE39D: 0x7F38,\n 0xE39E: 0x7F3A,\n 0xE39F: 0x7F45,\n 0xE3A0: 0x7F4C,\n 0xE3A1: 0x7F4D,\n 0xE3A2: 0x7F4E,\n 0xE3A3: 0x7F50,\n 0xE3A4: 0x7F51,\n 0xE3A5: 0x7F55,\n 0xE3A6: 0x7F54,\n 0xE3A7: 0x7F58,\n 0xE3A8: 0x7F5F,\n 0xE3A9: 0x7F60,\n 0xE3AA: 0x7F68,\n 0xE3AB: 0x7F69,\n 0xE3AC: 0x7F67,\n 0xE3AD: 0x7F78,\n 0xE3AE: 0x7F82,\n 0xE3AF: 0x7F86,\n 0xE3B0: 0x7F83,\n 0xE3B1: 0x7F88,\n 0xE3B2: 0x7F87,\n 0xE3B3: 0x7F8C,\n 0xE3B4: 0x7F94,\n 0xE3B5: 0x7F9E,\n 0xE3B6: 0x7F9D,\n 0xE3B7: 0x7F9A,\n 0xE3B8: 0x7FA3,\n 0xE3B9: 0x7FAF,\n 0xE3BA: 0x7FB2,\n 0xE3BB: 0x7FB9,\n 0xE3BC: 0x7FAE,\n 0xE3BD: 0x7FB6,\n 0xE3BE: 0x7FB8,\n 0xE3BF: 0x8B71,\n 0xE3C0: 0x7FC5,\n 0xE3C1: 0x7FC6,\n 0xE3C2: 0x7FCA,\n 0xE3C3: 0x7FD5,\n 0xE3C4: 0x7FD4,\n 0xE3C5: 0x7FE1,\n 0xE3C6: 0x7FE6,\n 0xE3C7: 0x7FE9,\n 0xE3C8: 0x7FF3,\n 0xE3C9: 0x7FF9,\n 0xE3CA: 0x98DC,\n 0xE3CB: 0x8006,\n 0xE3CC: 0x8004,\n 0xE3CD: 0x800B,\n 0xE3CE: 0x8012,\n 0xE3CF: 0x8018,\n 0xE3D0: 0x8019,\n 0xE3D1: 0x801C,\n 0xE3D2: 0x8021,\n 0xE3D3: 0x8028,\n 0xE3D4: 0x803F,\n 0xE3D5: 0x803B,\n 0xE3D6: 0x804A,\n 0xE3D7: 0x8046,\n 0xE3D8: 0x8052,\n 0xE3D9: 0x8058,\n 0xE3DA: 0x805A,\n 0xE3DB: 0x805F,\n 0xE3DC: 0x8062,\n 0xE3DD: 0x8068,\n 0xE3DE: 0x8073,\n 0xE3DF: 0x8072,\n 0xE3E0: 0x8070,\n 0xE3E1: 0x8076,\n 0xE3E2: 0x8079,\n 0xE3E3: 0x807D,\n 0xE3E4: 0x807F,\n 0xE3E5: 0x8084,\n 0xE3E6: 0x8086,\n 0xE3E7: 0x8085,\n 0xE3E8: 0x809B,\n 0xE3E9: 0x8093,\n 0xE3EA: 0x809A,\n 0xE3EB: 0x80AD,\n 0xE3EC: 0x5190,\n 0xE3ED: 0x80AC,\n 0xE3EE: 0x80DB,\n 0xE3EF: 0x80E5,\n 0xE3F0: 0x80D9,\n 0xE3F1: 0x80DD,\n 0xE3F2: 0x80C4,\n 0xE3F3: 0x80DA,\n 0xE3F4: 0x80D6,\n 0xE3F5: 0x8109,\n 0xE3F6: 0x80EF,\n 0xE3F7: 0x80F1,\n 0xE3F8: 0x811B,\n 0xE3F9: 0x8129,\n 0xE3FA: 0x8123,\n 0xE3FB: 0x812F,\n 0xE3FC: 0x814B,\n 0xE440: 0x968B,\n 0xE441: 0x8146,\n 0xE442: 0x813E,\n 0xE443: 0x8153,\n 0xE444: 0x8151,\n 0xE445: 0x80FC,\n 0xE446: 0x8171,\n 0xE447: 0x816E,\n 0xE448: 0x8165,\n 0xE449: 0x8166,\n 0xE44A: 0x8174,\n 0xE44B: 0x8183,\n 0xE44C: 0x8188,\n 0xE44D: 0x818A,\n 0xE44E: 0x8180,\n 0xE44F: 0x8182,\n 0xE450: 0x81A0,\n 0xE451: 0x8195,\n 0xE452: 0x81A4,\n 0xE453: 0x81A3,\n 0xE454: 0x815F,\n 0xE455: 0x8193,\n 0xE456: 0x81A9,\n 0xE457: 0x81B0,\n 0xE458: 0x81B5,\n 0xE459: 0x81BE,\n 0xE45A: 0x81B8,\n 0xE45B: 0x81BD,\n 0xE45C: 0x81C0,\n 0xE45D: 0x81C2,\n 0xE45E: 0x81BA,\n 0xE45F: 0x81C9,\n 0xE460: 0x81CD,\n 0xE461: 0x81D1,\n 0xE462: 0x81D9,\n 0xE463: 0x81D8,\n 0xE464: 0x81C8,\n 0xE465: 0x81DA,\n 0xE466: 0x81DF,\n 0xE467: 0x81E0,\n 0xE468: 0x81E7,\n 0xE469: 0x81FA,\n 0xE46A: 0x81FB,\n 0xE46B: 0x81FE,\n 0xE46C: 0x8201,\n 0xE46D: 0x8202,\n 0xE46E: 0x8205,\n 0xE46F: 0x8207,\n 0xE470: 0x820A,\n 0xE471: 0x820D,\n 0xE472: 0x8210,\n 0xE473: 0x8216,\n 0xE474: 0x8229,\n 0xE475: 0x822B,\n 0xE476: 0x8238,\n 0xE477: 0x8233,\n 0xE478: 0x8240,\n 0xE479: 0x8259,\n 0xE47A: 0x8258,\n 0xE47B: 0x825D,\n 0xE47C: 0x825A,\n 0xE47D: 0x825F,\n 0xE47E: 0x8264,\n 0xE480: 0x8262,\n 0xE481: 0x8268,\n 0xE482: 0x826A,\n 0xE483: 0x826B,\n 0xE484: 0x822E,\n 0xE485: 0x8271,\n 0xE486: 0x8277,\n 0xE487: 0x8278,\n 0xE488: 0x827E,\n 0xE489: 0x828D,\n 0xE48A: 0x8292,\n 0xE48B: 0x82AB,\n 0xE48C: 0x829F,\n 0xE48D: 0x82BB,\n 0xE48E: 0x82AC,\n 0xE48F: 0x82E1,\n 0xE490: 0x82E3,\n 0xE491: 0x82DF,\n 0xE492: 0x82D2,\n 0xE493: 0x82F4,\n 0xE494: 0x82F3,\n 0xE495: 0x82FA,\n 0xE496: 0x8393,\n 0xE497: 0x8303,\n 0xE498: 0x82FB,\n 0xE499: 0x82F9,\n 0xE49A: 0x82DE,\n 0xE49B: 0x8306,\n 0xE49C: 0x82DC,\n 0xE49D: 0x8309,\n 0xE49E: 0x82D9,\n 0xE49F: 0x8335,\n 0xE4A0: 0x8334,\n 0xE4A1: 0x8316,\n 0xE4A2: 0x8332,\n 0xE4A3: 0x8331,\n 0xE4A4: 0x8340,\n 0xE4A5: 0x8339,\n 0xE4A6: 0x8350,\n 0xE4A7: 0x8345,\n 0xE4A8: 0x832F,\n 0xE4A9: 0x832B,\n 0xE4AA: 0x8317,\n 0xE4AB: 0x8318,\n 0xE4AC: 0x8385,\n 0xE4AD: 0x839A,\n 0xE4AE: 0x83AA,\n 0xE4AF: 0x839F,\n 0xE4B0: 0x83A2,\n 0xE4B1: 0x8396,\n 0xE4B2: 0x8323,\n 0xE4B3: 0x838E,\n 0xE4B4: 0x8387,\n 0xE4B5: 0x838A,\n 0xE4B6: 0x837C,\n 0xE4B7: 0x83B5,\n 0xE4B8: 0x8373,\n 0xE4B9: 0x8375,\n 0xE4BA: 0x83A0,\n 0xE4BB: 0x8389,\n 0xE4BC: 0x83A8,\n 0xE4BD: 0x83F4,\n 0xE4BE: 0x8413,\n 0xE4BF: 0x83EB,\n 0xE4C0: 0x83CE,\n 0xE4C1: 0x83FD,\n 0xE4C2: 0x8403,\n 0xE4C3: 0x83D8,\n 0xE4C4: 0x840B,\n 0xE4C5: 0x83C1,\n 0xE4C6: 0x83F7,\n 0xE4C7: 0x8407,\n 0xE4C8: 0x83E0,\n 0xE4C9: 0x83F2,\n 0xE4CA: 0x840D,\n 0xE4CB: 0x8422,\n 0xE4CC: 0x8420,\n 0xE4CD: 0x83BD,\n 0xE4CE: 0x8438,\n 0xE4CF: 0x8506,\n 0xE4D0: 0x83FB,\n 0xE4D1: 0x846D,\n 0xE4D2: 0x842A,\n 0xE4D3: 0x843C,\n 0xE4D4: 0x855A,\n 0xE4D5: 0x8484,\n 0xE4D6: 0x8477,\n 0xE4D7: 0x846B,\n 0xE4D8: 0x84AD,\n 0xE4D9: 0x846E,\n 0xE4DA: 0x8482,\n 0xE4DB: 0x8469,\n 0xE4DC: 0x8446,\n 0xE4DD: 0x842C,\n 0xE4DE: 0x846F,\n 0xE4DF: 0x8479,\n 0xE4E0: 0x8435,\n 0xE4E1: 0x84CA,\n 0xE4E2: 0x8462,\n 0xE4E3: 0x84B9,\n 0xE4E4: 0x84BF,\n 0xE4E5: 0x849F,\n 0xE4E6: 0x84D9,\n 0xE4E7: 0x84CD,\n 0xE4E8: 0x84BB,\n 0xE4E9: 0x84DA,\n 0xE4EA: 0x84D0,\n 0xE4EB: 0x84C1,\n 0xE4EC: 0x84C6,\n 0xE4ED: 0x84D6,\n 0xE4EE: 0x84A1,\n 0xE4EF: 0x8521,\n 0xE4F0: 0x84FF,\n 0xE4F1: 0x84F4,\n 0xE4F2: 0x8517,\n 0xE4F3: 0x8518,\n 0xE4F4: 0x852C,\n 0xE4F5: 0x851F,\n 0xE4F6: 0x8515,\n 0xE4F7: 0x8514,\n 0xE4F8: 0x84FC,\n 0xE4F9: 0x8540,\n 0xE4FA: 0x8563,\n 0xE4FB: 0x8558,\n 0xE4FC: 0x8548,\n 0xE540: 0x8541,\n 0xE541: 0x8602,\n 0xE542: 0x854B,\n 0xE543: 0x8555,\n 0xE544: 0x8580,\n 0xE545: 0x85A4,\n 0xE546: 0x8588,\n 0xE547: 0x8591,\n 0xE548: 0x858A,\n 0xE549: 0x85A8,\n 0xE54A: 0x856D,\n 0xE54B: 0x8594,\n 0xE54C: 0x859B,\n 0xE54D: 0x85EA,\n 0xE54E: 0x8587,\n 0xE54F: 0x859C,\n 0xE550: 0x8577,\n 0xE551: 0x857E,\n 0xE552: 0x8590,\n 0xE553: 0x85C9,\n 0xE554: 0x85BA,\n 0xE555: 0x85CF,\n 0xE556: 0x85B9,\n 0xE557: 0x85D0,\n 0xE558: 0x85D5,\n 0xE559: 0x85DD,\n 0xE55A: 0x85E5,\n 0xE55B: 0x85DC,\n 0xE55C: 0x85F9,\n 0xE55D: 0x860A,\n 0xE55E: 0x8613,\n 0xE55F: 0x860B,\n 0xE560: 0x85FE,\n 0xE561: 0x85FA,\n 0xE562: 0x8606,\n 0xE563: 0x8622,\n 0xE564: 0x861A,\n 0xE565: 0x8630,\n 0xE566: 0x863F,\n 0xE567: 0x864D,\n 0xE568: 0x4E55,\n 0xE569: 0x8654,\n 0xE56A: 0x865F,\n 0xE56B: 0x8667,\n 0xE56C: 0x8671,\n 0xE56D: 0x8693,\n 0xE56E: 0x86A3,\n 0xE56F: 0x86A9,\n 0xE570: 0x86AA,\n 0xE571: 0x868B,\n 0xE572: 0x868C,\n 0xE573: 0x86B6,\n 0xE574: 0x86AF,\n 0xE575: 0x86C4,\n 0xE576: 0x86C6,\n 0xE577: 0x86B0,\n 0xE578: 0x86C9,\n 0xE579: 0x8823,\n 0xE57A: 0x86AB,\n 0xE57B: 0x86D4,\n 0xE57C: 0x86DE,\n 0xE57D: 0x86E9,\n 0xE57E: 0x86EC,\n 0xE580: 0x86DF,\n 0xE581: 0x86DB,\n 0xE582: 0x86EF,\n 0xE583: 0x8712,\n 0xE584: 0x8706,\n 0xE585: 0x8708,\n 0xE586: 0x8700,\n 0xE587: 0x8703,\n 0xE588: 0x86FB,\n 0xE589: 0x8711,\n 0xE58A: 0x8709,\n 0xE58B: 0x870D,\n 0xE58C: 0x86F9,\n 0xE58D: 0x870A,\n 0xE58E: 0x8734,\n 0xE58F: 0x873F,\n 0xE590: 0x8737,\n 0xE591: 0x873B,\n 0xE592: 0x8725,\n 0xE593: 0x8729,\n 0xE594: 0x871A,\n 0xE595: 0x8760,\n 0xE596: 0x875F,\n 0xE597: 0x8778,\n 0xE598: 0x874C,\n 0xE599: 0x874E,\n 0xE59A: 0x8774,\n 0xE59B: 0x8757,\n 0xE59C: 0x8768,\n 0xE59D: 0x876E,\n 0xE59E: 0x8759,\n 0xE59F: 0x8753,\n 0xE5A0: 0x8763,\n 0xE5A1: 0x876A,\n 0xE5A2: 0x8805,\n 0xE5A3: 0x87A2,\n 0xE5A4: 0x879F,\n 0xE5A5: 0x8782,\n 0xE5A6: 0x87AF,\n 0xE5A7: 0x87CB,\n 0xE5A8: 0x87BD,\n 0xE5A9: 0x87C0,\n 0xE5AA: 0x87D0,\n 0xE5AB: 0x96D6,\n 0xE5AC: 0x87AB,\n 0xE5AD: 0x87C4,\n 0xE5AE: 0x87B3,\n 0xE5AF: 0x87C7,\n 0xE5B0: 0x87C6,\n 0xE5B1: 0x87BB,\n 0xE5B2: 0x87EF,\n 0xE5B3: 0x87F2,\n 0xE5B4: 0x87E0,\n 0xE5B5: 0x880F,\n 0xE5B6: 0x880D,\n 0xE5B7: 0x87FE,\n 0xE5B8: 0x87F6,\n 0xE5B9: 0x87F7,\n 0xE5BA: 0x880E,\n 0xE5BB: 0x87D2,\n 0xE5BC: 0x8811,\n 0xE5BD: 0x8816,\n 0xE5BE: 0x8815,\n 0xE5BF: 0x8822,\n 0xE5C0: 0x8821,\n 0xE5C1: 0x8831,\n 0xE5C2: 0x8836,\n 0xE5C3: 0x8839,\n 0xE5C4: 0x8827,\n 0xE5C5: 0x883B,\n 0xE5C6: 0x8844,\n 0xE5C7: 0x8842,\n 0xE5C8: 0x8852,\n 0xE5C9: 0x8859,\n 0xE5CA: 0x885E,\n 0xE5CB: 0x8862,\n 0xE5CC: 0x886B,\n 0xE5CD: 0x8881,\n 0xE5CE: 0x887E,\n 0xE5CF: 0x889E,\n 0xE5D0: 0x8875,\n 0xE5D1: 0x887D,\n 0xE5D2: 0x88B5,\n 0xE5D3: 0x8872,\n 0xE5D4: 0x8882,\n 0xE5D5: 0x8897,\n 0xE5D6: 0x8892,\n 0xE5D7: 0x88AE,\n 0xE5D8: 0x8899,\n 0xE5D9: 0x88A2,\n 0xE5DA: 0x888D,\n 0xE5DB: 0x88A4,\n 0xE5DC: 0x88B0,\n 0xE5DD: 0x88BF,\n 0xE5DE: 0x88B1,\n 0xE5DF: 0x88C3,\n 0xE5E0: 0x88C4,\n 0xE5E1: 0x88D4,\n 0xE5E2: 0x88D8,\n 0xE5E3: 0x88D9,\n 0xE5E4: 0x88DD,\n 0xE5E5: 0x88F9,\n 0xE5E6: 0x8902,\n 0xE5E7: 0x88FC,\n 0xE5E8: 0x88F4,\n 0xE5E9: 0x88E8,\n 0xE5EA: 0x88F2,\n 0xE5EB: 0x8904,\n 0xE5EC: 0x890C,\n 0xE5ED: 0x890A,\n 0xE5EE: 0x8913,\n 0xE5EF: 0x8943,\n 0xE5F0: 0x891E,\n 0xE5F1: 0x8925,\n 0xE5F2: 0x892A,\n 0xE5F3: 0x892B,\n 0xE5F4: 0x8941,\n 0xE5F5: 0x8944,\n 0xE5F6: 0x893B,\n 0xE5F7: 0x8936,\n 0xE5F8: 0x8938,\n 0xE5F9: 0x894C,\n 0xE5FA: 0x891D,\n 0xE5FB: 0x8960,\n 0xE5FC: 0x895E,\n 0xE640: 0x8966,\n 0xE641: 0x8964,\n 0xE642: 0x896D,\n 0xE643: 0x896A,\n 0xE644: 0x896F,\n 0xE645: 0x8974,\n 0xE646: 0x8977,\n 0xE647: 0x897E,\n 0xE648: 0x8983,\n 0xE649: 0x8988,\n 0xE64A: 0x898A,\n 0xE64B: 0x8993,\n 0xE64C: 0x8998,\n 0xE64D: 0x89A1,\n 0xE64E: 0x89A9,\n 0xE64F: 0x89A6,\n 0xE650: 0x89AC,\n 0xE651: 0x89AF,\n 0xE652: 0x89B2,\n 0xE653: 0x89BA,\n 0xE654: 0x89BD,\n 0xE655: 0x89BF,\n 0xE656: 0x89C0,\n 0xE657: 0x89DA,\n 0xE658: 0x89DC,\n 0xE659: 0x89DD,\n 0xE65A: 0x89E7,\n 0xE65B: 0x89F4,\n 0xE65C: 0x89F8,\n 0xE65D: 0x8A03,\n 0xE65E: 0x8A16,\n 0xE65F: 0x8A10,\n 0xE660: 0x8A0C,\n 0xE661: 0x8A1B,\n 0xE662: 0x8A1D,\n 0xE663: 0x8A25,\n 0xE664: 0x8A36,\n 0xE665: 0x8A41,\n 0xE666: 0x8A5B,\n 0xE667: 0x8A52,\n 0xE668: 0x8A46,\n 0xE669: 0x8A48,\n 0xE66A: 0x8A7C,\n 0xE66B: 0x8A6D,\n 0xE66C: 0x8A6C,\n 0xE66D: 0x8A62,\n 0xE66E: 0x8A85,\n 0xE66F: 0x8A82,\n 0xE670: 0x8A84,\n 0xE671: 0x8AA8,\n 0xE672: 0x8AA1,\n 0xE673: 0x8A91,\n 0xE674: 0x8AA5,\n 0xE675: 0x8AA6,\n 0xE676: 0x8A9A,\n 0xE677: 0x8AA3,\n 0xE678: 0x8AC4,\n 0xE679: 0x8ACD,\n 0xE67A: 0x8AC2,\n 0xE67B: 0x8ADA,\n 0xE67C: 0x8AEB,\n 0xE67D: 0x8AF3,\n 0xE67E: 0x8AE7,\n 0xE680: 0x8AE4,\n 0xE681: 0x8AF1,\n 0xE682: 0x8B14,\n 0xE683: 0x8AE0,\n 0xE684: 0x8AE2,\n 0xE685: 0x8AF7,\n 0xE686: 0x8ADE,\n 0xE687: 0x8ADB,\n 0xE688: 0x8B0C,\n 0xE689: 0x8B07,\n 0xE68A: 0x8B1A,\n 0xE68B: 0x8AE1,\n 0xE68C: 0x8B16,\n 0xE68D: 0x8B10,\n 0xE68E: 0x8B17,\n 0xE68F: 0x8B20,\n 0xE690: 0x8B33,\n 0xE691: 0x97AB,\n 0xE692: 0x8B26,\n 0xE693: 0x8B2B,\n 0xE694: 0x8B3E,\n 0xE695: 0x8B28,\n 0xE696: 0x8B41,\n 0xE697: 0x8B4C,\n 0xE698: 0x8B4F,\n 0xE699: 0x8B4E,\n 0xE69A: 0x8B49,\n 0xE69B: 0x8B56,\n 0xE69C: 0x8B5B,\n 0xE69D: 0x8B5A,\n 0xE69E: 0x8B6B,\n 0xE69F: 0x8B5F,\n 0xE6A0: 0x8B6C,\n 0xE6A1: 0x8B6F,\n 0xE6A2: 0x8B74,\n 0xE6A3: 0x8B7D,\n 0xE6A4: 0x8B80,\n 0xE6A5: 0x8B8C,\n 0xE6A6: 0x8B8E,\n 0xE6A7: 0x8B92,\n 0xE6A8: 0x8B93,\n 0xE6A9: 0x8B96,\n 0xE6AA: 0x8B99,\n 0xE6AB: 0x8B9A,\n 0xE6AC: 0x8C3A,\n 0xE6AD: 0x8C41,\n 0xE6AE: 0x8C3F,\n 0xE6AF: 0x8C48,\n 0xE6B0: 0x8C4C,\n 0xE6B1: 0x8C4E,\n 0xE6B2: 0x8C50,\n 0xE6B3: 0x8C55,\n 0xE6B4: 0x8C62,\n 0xE6B5: 0x8C6C,\n 0xE6B6: 0x8C78,\n 0xE6B7: 0x8C7A,\n 0xE6B8: 0x8C82,\n 0xE6B9: 0x8C89,\n 0xE6BA: 0x8C85,\n 0xE6BB: 0x8C8A,\n 0xE6BC: 0x8C8D,\n 0xE6BD: 0x8C8E,\n 0xE6BE: 0x8C94,\n 0xE6BF: 0x8C7C,\n 0xE6C0: 0x8C98,\n 0xE6C1: 0x621D,\n 0xE6C2: 0x8CAD,\n 0xE6C3: 0x8CAA,\n 0xE6C4: 0x8CBD,\n 0xE6C5: 0x8CB2,\n 0xE6C6: 0x8CB3,\n 0xE6C7: 0x8CAE,\n 0xE6C8: 0x8CB6,\n 0xE6C9: 0x8CC8,\n 0xE6CA: 0x8CC1,\n 0xE6CB: 0x8CE4,\n 0xE6CC: 0x8CE3,\n 0xE6CD: 0x8CDA,\n 0xE6CE: 0x8CFD,\n 0xE6CF: 0x8CFA,\n 0xE6D0: 0x8CFB,\n 0xE6D1: 0x8D04,\n 0xE6D2: 0x8D05,\n 0xE6D3: 0x8D0A,\n 0xE6D4: 0x8D07,\n 0xE6D5: 0x8D0F,\n 0xE6D6: 0x8D0D,\n 0xE6D7: 0x8D10,\n 0xE6D8: 0x9F4E,\n 0xE6D9: 0x8D13,\n 0xE6DA: 0x8CCD,\n 0xE6DB: 0x8D14,\n 0xE6DC: 0x8D16,\n 0xE6DD: 0x8D67,\n 0xE6DE: 0x8D6D,\n 0xE6DF: 0x8D71,\n 0xE6E0: 0x8D73,\n 0xE6E1: 0x8D81,\n 0xE6E2: 0x8D99,\n 0xE6E3: 0x8DC2,\n 0xE6E4: 0x8DBE,\n 0xE6E5: 0x8DBA,\n 0xE6E6: 0x8DCF,\n 0xE6E7: 0x8DDA,\n 0xE6E8: 0x8DD6,\n 0xE6E9: 0x8DCC,\n 0xE6EA: 0x8DDB,\n 0xE6EB: 0x8DCB,\n 0xE6EC: 0x8DEA,\n 0xE6ED: 0x8DEB,\n 0xE6EE: 0x8DDF,\n 0xE6EF: 0x8DE3,\n 0xE6F0: 0x8DFC,\n 0xE6F1: 0x8E08,\n 0xE6F2: 0x8E09,\n 0xE6F3: 0x8DFF,\n 0xE6F4: 0x8E1D,\n 0xE6F5: 0x8E1E,\n 0xE6F6: 0x8E10,\n 0xE6F7: 0x8E1F,\n 0xE6F8: 0x8E42,\n 0xE6F9: 0x8E35,\n 0xE6FA: 0x8E30,\n 0xE6FB: 0x8E34,\n 0xE6FC: 0x8E4A,\n 0xE740: 0x8E47,\n 0xE741: 0x8E49,\n 0xE742: 0x8E4C,\n 0xE743: 0x8E50,\n 0xE744: 0x8E48,\n 0xE745: 0x8E59,\n 0xE746: 0x8E64,\n 0xE747: 0x8E60,\n 0xE748: 0x8E2A,\n 0xE749: 0x8E63,\n 0xE74A: 0x8E55,\n 0xE74B: 0x8E76,\n 0xE74C: 0x8E72,\n 0xE74D: 0x8E7C,\n 0xE74E: 0x8E81,\n 0xE74F: 0x8E87,\n 0xE750: 0x8E85,\n 0xE751: 0x8E84,\n 0xE752: 0x8E8B,\n 0xE753: 0x8E8A,\n 0xE754: 0x8E93,\n 0xE755: 0x8E91,\n 0xE756: 0x8E94,\n 0xE757: 0x8E99,\n 0xE758: 0x8EAA,\n 0xE759: 0x8EA1,\n 0xE75A: 0x8EAC,\n 0xE75B: 0x8EB0,\n 0xE75C: 0x8EC6,\n 0xE75D: 0x8EB1,\n 0xE75E: 0x8EBE,\n 0xE75F: 0x8EC5,\n 0xE760: 0x8EC8,\n 0xE761: 0x8ECB,\n 0xE762: 0x8EDB,\n 0xE763: 0x8EE3,\n 0xE764: 0x8EFC,\n 0xE765: 0x8EFB,\n 0xE766: 0x8EEB,\n 0xE767: 0x8EFE,\n 0xE768: 0x8F0A,\n 0xE769: 0x8F05,\n 0xE76A: 0x8F15,\n 0xE76B: 0x8F12,\n 0xE76C: 0x8F19,\n 0xE76D: 0x8F13,\n 0xE76E: 0x8F1C,\n 0xE76F: 0x8F1F,\n 0xE770: 0x8F1B,\n 0xE771: 0x8F0C,\n 0xE772: 0x8F26,\n 0xE773: 0x8F33,\n 0xE774: 0x8F3B,\n 0xE775: 0x8F39,\n 0xE776: 0x8F45,\n 0xE777: 0x8F42,\n 0xE778: 0x8F3E,\n 0xE779: 0x8F4C,\n 0xE77A: 0x8F49,\n 0xE77B: 0x8F46,\n 0xE77C: 0x8F4E,\n 0xE77D: 0x8F57,\n 0xE77E: 0x8F5C,\n 0xE780: 0x8F62,\n 0xE781: 0x8F63,\n 0xE782: 0x8F64,\n 0xE783: 0x8F9C,\n 0xE784: 0x8F9F,\n 0xE785: 0x8FA3,\n 0xE786: 0x8FAD,\n 0xE787: 0x8FAF,\n 0xE788: 0x8FB7,\n 0xE789: 0x8FDA,\n 0xE78A: 0x8FE5,\n 0xE78B: 0x8FE2,\n 0xE78C: 0x8FEA,\n 0xE78D: 0x8FEF,\n 0xE78E: 0x9087,\n 0xE78F: 0x8FF4,\n 0xE790: 0x9005,\n 0xE791: 0x8FF9,\n 0xE792: 0x8FFA,\n 0xE793: 0x9011,\n 0xE794: 0x9015,\n 0xE795: 0x9021,\n 0xE796: 0x900D,\n 0xE797: 0x901E,\n 0xE798: 0x9016,\n 0xE799: 0x900B,\n 0xE79A: 0x9027,\n 0xE79B: 0x9036,\n 0xE79C: 0x9035,\n 0xE79D: 0x9039,\n 0xE79E: 0x8FF8,\n 0xE79F: 0x904F,\n 0xE7A0: 0x9050,\n 0xE7A1: 0x9051,\n 0xE7A2: 0x9052,\n 0xE7A3: 0x900E,\n 0xE7A4: 0x9049,\n 0xE7A5: 0x903E,\n 0xE7A6: 0x9056,\n 0xE7A7: 0x9058,\n 0xE7A8: 0x905E,\n 0xE7A9: 0x9068,\n 0xE7AA: 0x906F,\n 0xE7AB: 0x9076,\n 0xE7AC: 0x96A8,\n 0xE7AD: 0x9072,\n 0xE7AE: 0x9082,\n 0xE7AF: 0x907D,\n 0xE7B0: 0x9081,\n 0xE7B1: 0x9080,\n 0xE7B2: 0x908A,\n 0xE7B3: 0x9089,\n 0xE7B4: 0x908F,\n 0xE7B5: 0x90A8,\n 0xE7B6: 0x90AF,\n 0xE7B7: 0x90B1,\n 0xE7B8: 0x90B5,\n 0xE7B9: 0x90E2,\n 0xE7BA: 0x90E4,\n 0xE7BB: 0x6248,\n 0xE7BC: 0x90DB,\n 0xE7BD: 0x9102,\n 0xE7BE: 0x9112,\n 0xE7BF: 0x9119,\n 0xE7C0: 0x9132,\n 0xE7C1: 0x9130,\n 0xE7C2: 0x914A,\n 0xE7C3: 0x9156,\n 0xE7C4: 0x9158,\n 0xE7C5: 0x9163,\n 0xE7C6: 0x9165,\n 0xE7C7: 0x9169,\n 0xE7C8: 0x9173,\n 0xE7C9: 0x9172,\n 0xE7CA: 0x918B,\n 0xE7CB: 0x9189,\n 0xE7CC: 0x9182,\n 0xE7CD: 0x91A2,\n 0xE7CE: 0x91AB,\n 0xE7CF: 0x91AF,\n 0xE7D0: 0x91AA,\n 0xE7D1: 0x91B5,\n 0xE7D2: 0x91B4,\n 0xE7D3: 0x91BA,\n 0xE7D4: 0x91C0,\n 0xE7D5: 0x91C1,\n 0xE7D6: 0x91C9,\n 0xE7D7: 0x91CB,\n 0xE7D8: 0x91D0,\n 0xE7D9: 0x91D6,\n 0xE7DA: 0x91DF,\n 0xE7DB: 0x91E1,\n 0xE7DC: 0x91DB,\n 0xE7DD: 0x91FC,\n 0xE7DE: 0x91F5,\n 0xE7DF: 0x91F6,\n 0xE7E0: 0x921E,\n 0xE7E1: 0x91FF,\n 0xE7E2: 0x9214,\n 0xE7E3: 0x922C,\n 0xE7E4: 0x9215,\n 0xE7E5: 0x9211,\n 0xE7E6: 0x925E,\n 0xE7E7: 0x9257,\n 0xE7E8: 0x9245,\n 0xE7E9: 0x9249,\n 0xE7EA: 0x9264,\n 0xE7EB: 0x9248,\n 0xE7EC: 0x9295,\n 0xE7ED: 0x923F,\n 0xE7EE: 0x924B,\n 0xE7EF: 0x9250,\n 0xE7F0: 0x929C,\n 0xE7F1: 0x9296,\n 0xE7F2: 0x9293,\n 0xE7F3: 0x929B,\n 0xE7F4: 0x925A,\n 0xE7F5: 0x92CF,\n 0xE7F6: 0x92B9,\n 0xE7F7: 0x92B7,\n 0xE7F8: 0x92E9,\n 0xE7F9: 0x930F,\n 0xE7FA: 0x92FA,\n 0xE7FB: 0x9344,\n 0xE7FC: 0x932E,\n 0xE840: 0x9319,\n 0xE841: 0x9322,\n 0xE842: 0x931A,\n 0xE843: 0x9323,\n 0xE844: 0x933A,\n 0xE845: 0x9335,\n 0xE846: 0x933B,\n 0xE847: 0x935C,\n 0xE848: 0x9360,\n 0xE849: 0x937C,\n 0xE84A: 0x936E,\n 0xE84B: 0x9356,\n 0xE84C: 0x93B0,\n 0xE84D: 0x93AC,\n 0xE84E: 0x93AD,\n 0xE84F: 0x9394,\n 0xE850: 0x93B9,\n 0xE851: 0x93D6,\n 0xE852: 0x93D7,\n 0xE853: 0x93E8,\n 0xE854: 0x93E5,\n 0xE855: 0x93D8,\n 0xE856: 0x93C3,\n 0xE857: 0x93DD,\n 0xE858: 0x93D0,\n 0xE859: 0x93C8,\n 0xE85A: 0x93E4,\n 0xE85B: 0x941A,\n 0xE85C: 0x9414,\n 0xE85D: 0x9413,\n 0xE85E: 0x9403,\n 0xE85F: 0x9407,\n 0xE860: 0x9410,\n 0xE861: 0x9436,\n 0xE862: 0x942B,\n 0xE863: 0x9435,\n 0xE864: 0x9421,\n 0xE865: 0x943A,\n 0xE866: 0x9441,\n 0xE867: 0x9452,\n 0xE868: 0x9444,\n 0xE869: 0x945B,\n 0xE86A: 0x9460,\n 0xE86B: 0x9462,\n 0xE86C: 0x945E,\n 0xE86D: 0x946A,\n 0xE86E: 0x9229,\n 0xE86F: 0x9470,\n 0xE870: 0x9475,\n 0xE871: 0x9477,\n 0xE872: 0x947D,\n 0xE873: 0x945A,\n 0xE874: 0x947C,\n 0xE875: 0x947E,\n 0xE876: 0x9481,\n 0xE877: 0x947F,\n 0xE878: 0x9582,\n 0xE879: 0x9587,\n 0xE87A: 0x958A,\n 0xE87B: 0x9594,\n 0xE87C: 0x9596,\n 0xE87D: 0x9598,\n 0xE87E: 0x9599,\n 0xE880: 0x95A0,\n 0xE881: 0x95A8,\n 0xE882: 0x95A7,\n 0xE883: 0x95AD,\n 0xE884: 0x95BC,\n 0xE885: 0x95BB,\n 0xE886: 0x95B9,\n 0xE887: 0x95BE,\n 0xE888: 0x95CA,\n 0xE889: 0x6FF6,\n 0xE88A: 0x95C3,\n 0xE88B: 0x95CD,\n 0xE88C: 0x95CC,\n 0xE88D: 0x95D5,\n 0xE88E: 0x95D4,\n 0xE88F: 0x95D6,\n 0xE890: 0x95DC,\n 0xE891: 0x95E1,\n 0xE892: 0x95E5,\n 0xE893: 0x95E2,\n 0xE894: 0x9621,\n 0xE895: 0x9628,\n 0xE896: 0x962E,\n 0xE897: 0x962F,\n 0xE898: 0x9642,\n 0xE899: 0x964C,\n 0xE89A: 0x964F,\n 0xE89B: 0x964B,\n 0xE89C: 0x9677,\n 0xE89D: 0x965C,\n 0xE89E: 0x965E,\n 0xE89F: 0x965D,\n 0xE8A0: 0x965F,\n 0xE8A1: 0x9666,\n 0xE8A2: 0x9672,\n 0xE8A3: 0x966C,\n 0xE8A4: 0x968D,\n 0xE8A5: 0x9698,\n 0xE8A6: 0x9695,\n 0xE8A7: 0x9697,\n 0xE8A8: 0x96AA,\n 0xE8A9: 0x96A7,\n 0xE8AA: 0x96B1,\n 0xE8AB: 0x96B2,\n 0xE8AC: 0x96B0,\n 0xE8AD: 0x96B4,\n 0xE8AE: 0x96B6,\n 0xE8AF: 0x96B8,\n 0xE8B0: 0x96B9,\n 0xE8B1: 0x96CE,\n 0xE8B2: 0x96CB,\n 0xE8B3: 0x96C9,\n 0xE8B4: 0x96CD,\n 0xE8B5: 0x894D,\n 0xE8B6: 0x96DC,\n 0xE8B7: 0x970D,\n 0xE8B8: 0x96D5,\n 0xE8B9: 0x96F9,\n 0xE8BA: 0x9704,\n 0xE8BB: 0x9706,\n 0xE8BC: 0x9708,\n 0xE8BD: 0x9713,\n 0xE8BE: 0x970E,\n 0xE8BF: 0x9711,\n 0xE8C0: 0x970F,\n 0xE8C1: 0x9716,\n 0xE8C2: 0x9719,\n 0xE8C3: 0x9724,\n 0xE8C4: 0x972A,\n 0xE8C5: 0x9730,\n 0xE8C6: 0x9739,\n 0xE8C7: 0x973D,\n 0xE8C8: 0x973E,\n 0xE8C9: 0x9744,\n 0xE8CA: 0x9746,\n 0xE8CB: 0x9748,\n 0xE8CC: 0x9742,\n 0xE8CD: 0x9749,\n 0xE8CE: 0x975C,\n 0xE8CF: 0x9760,\n 0xE8D0: 0x9764,\n 0xE8D1: 0x9766,\n 0xE8D2: 0x9768,\n 0xE8D3: 0x52D2,\n 0xE8D4: 0x976B,\n 0xE8D5: 0x9771,\n 0xE8D6: 0x9779,\n 0xE8D7: 0x9785,\n 0xE8D8: 0x977C,\n 0xE8D9: 0x9781,\n 0xE8DA: 0x977A,\n 0xE8DB: 0x9786,\n 0xE8DC: 0x978B,\n 0xE8DD: 0x978F,\n 0xE8DE: 0x9790,\n 0xE8DF: 0x979C,\n 0xE8E0: 0x97A8,\n 0xE8E1: 0x97A6,\n 0xE8E2: 0x97A3,\n 0xE8E3: 0x97B3,\n 0xE8E4: 0x97B4,\n 0xE8E5: 0x97C3,\n 0xE8E6: 0x97C6,\n 0xE8E7: 0x97C8,\n 0xE8E8: 0x97CB,\n 0xE8E9: 0x97DC,\n 0xE8EA: 0x97ED,\n 0xE8EB: 0x9F4F,\n 0xE8EC: 0x97F2,\n 0xE8ED: 0x7ADF,\n 0xE8EE: 0x97F6,\n 0xE8EF: 0x97F5,\n 0xE8F0: 0x980F,\n 0xE8F1: 0x980C,\n 0xE8F2: 0x9838,\n 0xE8F3: 0x9824,\n 0xE8F4: 0x9821,\n 0xE8F5: 0x9837,\n 0xE8F6: 0x983D,\n 0xE8F7: 0x9846,\n 0xE8F8: 0x984F,\n 0xE8F9: 0x984B,\n 0xE8FA: 0x986B,\n 0xE8FB: 0x986F,\n 0xE8FC: 0x9870,\n 0xE940: 0x9871,\n 0xE941: 0x9874,\n 0xE942: 0x9873,\n 0xE943: 0x98AA,\n 0xE944: 0x98AF,\n 0xE945: 0x98B1,\n 0xE946: 0x98B6,\n 0xE947: 0x98C4,\n 0xE948: 0x98C3,\n 0xE949: 0x98C6,\n 0xE94A: 0x98E9,\n 0xE94B: 0x98EB,\n 0xE94C: 0x9903,\n 0xE94D: 0x9909,\n 0xE94E: 0x9912,\n 0xE94F: 0x9914,\n 0xE950: 0x9918,\n 0xE951: 0x9921,\n 0xE952: 0x991D,\n 0xE953: 0x991E,\n 0xE954: 0x9924,\n 0xE955: 0x9920,\n 0xE956: 0x992C,\n 0xE957: 0x992E,\n 0xE958: 0x993D,\n 0xE959: 0x993E,\n 0xE95A: 0x9942,\n 0xE95B: 0x9949,\n 0xE95C: 0x9945,\n 0xE95D: 0x9950,\n 0xE95E: 0x994B,\n 0xE95F: 0x9951,\n 0xE960: 0x9952,\n 0xE961: 0x994C,\n 0xE962: 0x9955,\n 0xE963: 0x9997,\n 0xE964: 0x9998,\n 0xE965: 0x99A5,\n 0xE966: 0x99AD,\n 0xE967: 0x99AE,\n 0xE968: 0x99BC,\n 0xE969: 0x99DF,\n 0xE96A: 0x99DB,\n 0xE96B: 0x99DD,\n 0xE96C: 0x99D8,\n 0xE96D: 0x99D1,\n 0xE96E: 0x99ED,\n 0xE96F: 0x99EE,\n 0xE970: 0x99F1,\n 0xE971: 0x99F2,\n 0xE972: 0x99FB,\n 0xE973: 0x99F8,\n 0xE974: 0x9A01,\n 0xE975: 0x9A0F,\n 0xE976: 0x9A05,\n 0xE977: 0x99E2,\n 0xE978: 0x9A19,\n 0xE979: 0x9A2B,\n 0xE97A: 0x9A37,\n 0xE97B: 0x9A45,\n 0xE97C: 0x9A42,\n 0xE97D: 0x9A40,\n 0xE97E: 0x9A43,\n 0xE980: 0x9A3E,\n 0xE981: 0x9A55,\n 0xE982: 0x9A4D,\n 0xE983: 0x9A5B,\n 0xE984: 0x9A57,\n 0xE985: 0x9A5F,\n 0xE986: 0x9A62,\n 0xE987: 0x9A65,\n 0xE988: 0x9A64,\n 0xE989: 0x9A69,\n 0xE98A: 0x9A6B,\n 0xE98B: 0x9A6A,\n 0xE98C: 0x9AAD,\n 0xE98D: 0x9AB0,\n 0xE98E: 0x9ABC,\n 0xE98F: 0x9AC0,\n 0xE990: 0x9ACF,\n 0xE991: 0x9AD1,\n 0xE992: 0x9AD3,\n 0xE993: 0x9AD4,\n 0xE994: 0x9ADE,\n 0xE995: 0x9ADF,\n 0xE996: 0x9AE2,\n 0xE997: 0x9AE3,\n 0xE998: 0x9AE6,\n 0xE999: 0x9AEF,\n 0xE99A: 0x9AEB,\n 0xE99B: 0x9AEE,\n 0xE99C: 0x9AF4,\n 0xE99D: 0x9AF1,\n 0xE99E: 0x9AF7,\n 0xE99F: 0x9AFB,\n 0xE9A0: 0x9B06,\n 0xE9A1: 0x9B18,\n 0xE9A2: 0x9B1A,\n 0xE9A3: 0x9B1F,\n 0xE9A4: 0x9B22,\n 0xE9A5: 0x9B23,\n 0xE9A6: 0x9B25,\n 0xE9A7: 0x9B27,\n 0xE9A8: 0x9B28,\n 0xE9A9: 0x9B29,\n 0xE9AA: 0x9B2A,\n 0xE9AB: 0x9B2E,\n 0xE9AC: 0x9B2F,\n 0xE9AD: 0x9B32,\n 0xE9AE: 0x9B44,\n 0xE9AF: 0x9B43,\n 0xE9B0: 0x9B4F,\n 0xE9B1: 0x9B4D,\n 0xE9B2: 0x9B4E,\n 0xE9B3: 0x9B51,\n 0xE9B4: 0x9B58,\n 0xE9B5: 0x9B74,\n 0xE9B6: 0x9B93,\n 0xE9B7: 0x9B83,\n 0xE9B8: 0x9B91,\n 0xE9B9: 0x9B96,\n 0xE9BA: 0x9B97,\n 0xE9BB: 0x9B9F,\n 0xE9BC: 0x9BA0,\n 0xE9BD: 0x9BA8,\n 0xE9BE: 0x9BB4,\n 0xE9BF: 0x9BC0,\n 0xE9C0: 0x9BCA,\n 0xE9C1: 0x9BB9,\n 0xE9C2: 0x9BC6,\n 0xE9C3: 0x9BCF,\n 0xE9C4: 0x9BD1,\n 0xE9C5: 0x9BD2,\n 0xE9C6: 0x9BE3,\n 0xE9C7: 0x9BE2,\n 0xE9C8: 0x9BE4,\n 0xE9C9: 0x9BD4,\n 0xE9CA: 0x9BE1,\n 0xE9CB: 0x9C3A,\n 0xE9CC: 0x9BF2,\n 0xE9CD: 0x9BF1,\n 0xE9CE: 0x9BF0,\n 0xE9CF: 0x9C15,\n 0xE9D0: 0x9C14,\n 0xE9D1: 0x9C09,\n 0xE9D2: 0x9C13,\n 0xE9D3: 0x9C0C,\n 0xE9D4: 0x9C06,\n 0xE9D5: 0x9C08,\n 0xE9D6: 0x9C12,\n 0xE9D7: 0x9C0A,\n 0xE9D8: 0x9C04,\n 0xE9D9: 0x9C2E,\n 0xE9DA: 0x9C1B,\n 0xE9DB: 0x9C25,\n 0xE9DC: 0x9C24,\n 0xE9DD: 0x9C21,\n 0xE9DE: 0x9C30,\n 0xE9DF: 0x9C47,\n 0xE9E0: 0x9C32,\n 0xE9E1: 0x9C46,\n 0xE9E2: 0x9C3E,\n 0xE9E3: 0x9C5A,\n 0xE9E4: 0x9C60,\n 0xE9E5: 0x9C67,\n 0xE9E6: 0x9C76,\n 0xE9E7: 0x9C78,\n 0xE9E8: 0x9CE7,\n 0xE9E9: 0x9CEC,\n 0xE9EA: 0x9CF0,\n 0xE9EB: 0x9D09,\n 0xE9EC: 0x9D08,\n 0xE9ED: 0x9CEB,\n 0xE9EE: 0x9D03,\n 0xE9EF: 0x9D06,\n 0xE9F0: 0x9D2A,\n 0xE9F1: 0x9D26,\n 0xE9F2: 0x9DAF,\n 0xE9F3: 0x9D23,\n 0xE9F4: 0x9D1F,\n 0xE9F5: 0x9D44,\n 0xE9F6: 0x9D15,\n 0xE9F7: 0x9D12,\n 0xE9F8: 0x9D41,\n 0xE9F9: 0x9D3F,\n 0xE9FA: 0x9D3E,\n 0xE9FB: 0x9D46,\n 0xE9FC: 0x9D48,\n 0xEA40: 0x9D5D,\n 0xEA41: 0x9D5E,\n 0xEA42: 0x9D64,\n 0xEA43: 0x9D51,\n 0xEA44: 0x9D50,\n 0xEA45: 0x9D59,\n 0xEA46: 0x9D72,\n 0xEA47: 0x9D89,\n 0xEA48: 0x9D87,\n 0xEA49: 0x9DAB,\n 0xEA4A: 0x9D6F,\n 0xEA4B: 0x9D7A,\n 0xEA4C: 0x9D9A,\n 0xEA4D: 0x9DA4,\n 0xEA4E: 0x9DA9,\n 0xEA4F: 0x9DB2,\n 0xEA50: 0x9DC4,\n 0xEA51: 0x9DC1,\n 0xEA52: 0x9DBB,\n 0xEA53: 0x9DB8,\n 0xEA54: 0x9DBA,\n 0xEA55: 0x9DC6,\n 0xEA56: 0x9DCF,\n 0xEA57: 0x9DC2,\n 0xEA58: 0x9DD9,\n 0xEA59: 0x9DD3,\n 0xEA5A: 0x9DF8,\n 0xEA5B: 0x9DE6,\n 0xEA5C: 0x9DED,\n 0xEA5D: 0x9DEF,\n 0xEA5E: 0x9DFD,\n 0xEA5F: 0x9E1A,\n 0xEA60: 0x9E1B,\n 0xEA61: 0x9E1E,\n 0xEA62: 0x9E75,\n 0xEA63: 0x9E79,\n 0xEA64: 0x9E7D,\n 0xEA65: 0x9E81,\n 0xEA66: 0x9E88,\n 0xEA67: 0x9E8B,\n 0xEA68: 0x9E8C,\n 0xEA69: 0x9E92,\n 0xEA6A: 0x9E95,\n 0xEA6B: 0x9E91,\n 0xEA6C: 0x9E9D,\n 0xEA6D: 0x9EA5,\n 0xEA6E: 0x9EA9,\n 0xEA6F: 0x9EB8,\n 0xEA70: 0x9EAA,\n 0xEA71: 0x9EAD,\n 0xEA72: 0x9761,\n 0xEA73: 0x9ECC,\n 0xEA74: 0x9ECE,\n 0xEA75: 0x9ECF,\n 0xEA76: 0x9ED0,\n 0xEA77: 0x9ED4,\n 0xEA78: 0x9EDC,\n 0xEA79: 0x9EDE,\n 0xEA7A: 0x9EDD,\n 0xEA7B: 0x9EE0,\n 0xEA7C: 0x9EE5,\n 0xEA7D: 0x9EE8,\n 0xEA7E: 0x9EEF,\n 0xEA80: 0x9EF4,\n 0xEA81: 0x9EF6,\n 0xEA82: 0x9EF7,\n 0xEA83: 0x9EF9,\n 0xEA84: 0x9EFB,\n 0xEA85: 0x9EFC,\n 0xEA86: 0x9EFD,\n 0xEA87: 0x9F07,\n 0xEA88: 0x9F08,\n 0xEA89: 0x76B7,\n 0xEA8A: 0x9F15,\n 0xEA8B: 0x9F21,\n 0xEA8C: 0x9F2C,\n 0xEA8D: 0x9F3E,\n 0xEA8E: 0x9F4A,\n 0xEA8F: 0x9F52,\n 0xEA90: 0x9F54,\n 0xEA91: 0x9F63,\n 0xEA92: 0x9F5F,\n 0xEA93: 0x9F60,\n 0xEA94: 0x9F61,\n 0xEA95: 0x9F66,\n 0xEA96: 0x9F67,\n 0xEA97: 0x9F6C,\n 0xEA98: 0x9F6A,\n 0xEA99: 0x9F77,\n 0xEA9A: 0x9F72,\n 0xEA9B: 0x9F76,\n 0xEA9C: 0x9F95,\n 0xEA9D: 0x9F9C,\n 0xEA9E: 0x9FA0,\n 0xEA9F: 0x582F,\n 0xEAA0: 0x69C7,\n 0xEAA1: 0x9059,\n 0xEAA2: 0x7464,\n 0xEAA3: 0x51DC,\n 0xEAA4: 0x7199,\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGF_1 = __webpack_require__(1);\nvar GenericGFPoly_1 = __webpack_require__(2);\nfunction runEuclideanAlgorithm(field, a, b, R) {\n var _a;\n // Assume a's degree is >= b's\n if (a.degree() < b.degree()) {\n _a = [b, a], a = _a[0], b = _a[1];\n }\n var rLast = a;\n var r = b;\n var tLast = field.zero;\n var t = field.one;\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.degree() >= R / 2) {\n var rLastLast = rLast;\n var tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Euclidean algorithm already terminated?\n return null;\n }\n r = rLastLast;\n var q = field.zero;\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.degree());\n var dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.degree() >= rLast.degree() && !r.isZero()) {\n var degreeDiff = r.degree() - rLast.degree();\n var scale = field.multiply(r.getCoefficient(r.degree()), dltInverse);\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiplyPoly(tLast).addOrSubtract(tLastLast);\n if (r.degree() >= rLast.degree()) {\n return null;\n }\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n return null;\n }\n var inverse = field.inverse(sigmaTildeAtZero);\n return [t.multiply(inverse), r.multiply(inverse)];\n}\nfunction findErrorLocations(field, errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.degree();\n if (numErrors === 1) {\n return [errorLocator.getCoefficient(1)];\n }\n var result = new Array(numErrors);\n var errorCount = 0;\n for (var i = 1; i < field.size && errorCount < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[errorCount] = field.inverse(i);\n errorCount++;\n }\n }\n if (errorCount !== numErrors) {\n return null;\n }\n return result;\n}\nfunction findErrorMagnitudes(field, errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Array(s);\n for (var i = 0; i < s; i++) {\n var xiInverse = field.inverse(errorLocations[i]);\n var denominator = 1;\n for (var j = 0; j < s; j++) {\n if (i !== j) {\n denominator = field.multiply(denominator, GenericGF_1.addOrSubtractGF(1, field.multiply(errorLocations[j], xiInverse)));\n }\n }\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n if (field.generatorBase !== 0) {\n result[i] = field.multiply(result[i], xiInverse);\n }\n }\n return result;\n}\nfunction decode(bytes, twoS) {\n var outputBytes = new Uint8ClampedArray(bytes.length);\n outputBytes.set(bytes);\n var field = new GenericGF_1.default(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n var poly = new GenericGFPoly_1.default(field, outputBytes);\n var syndromeCoefficients = new Uint8ClampedArray(twoS);\n var error = false;\n for (var s = 0; s < twoS; s++) {\n var evaluation = poly.evaluateAt(field.exp(s + field.generatorBase));\n syndromeCoefficients[syndromeCoefficients.length - 1 - s] = evaluation;\n if (evaluation !== 0) {\n error = true;\n }\n }\n if (!error) {\n return outputBytes;\n }\n var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);\n var sigmaOmega = runEuclideanAlgorithm(field, field.buildMonomial(twoS, 1), syndrome, twoS);\n if (sigmaOmega === null) {\n return null;\n }\n var errorLocations = findErrorLocations(field, sigmaOmega[0]);\n if (errorLocations == null) {\n return null;\n }\n var errorMagnitudes = findErrorMagnitudes(field, sigmaOmega[1], errorLocations);\n for (var i = 0; i < errorLocations.length; i++) {\n var position = outputBytes.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n return null;\n }\n outputBytes[position] = GenericGF_1.addOrSubtractGF(outputBytes[position], errorMagnitudes[i]);\n }\n return outputBytes;\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSIONS = [\n {\n infoBits: null,\n versionNumber: 1,\n alignmentPatternCenters: [],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 7,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 19 }],\n },\n {\n ecCodewordsPerBlock: 10,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],\n },\n {\n ecCodewordsPerBlock: 13,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 13 }],\n },\n {\n ecCodewordsPerBlock: 17,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 9 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 2,\n alignmentPatternCenters: [6, 18],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 10,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 34 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 28 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 22 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 3,\n alignmentPatternCenters: [6, 22],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 15,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 55 }],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 44 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 17 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 13 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 4,\n alignmentPatternCenters: [6, 26],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 80 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 32 }],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 24 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 9 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 5,\n alignmentPatternCenters: [6, 30],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 108 }],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 43 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n { numBlocks: 2, dataCodewordsPerBlock: 16 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 11 },\n { numBlocks: 2, dataCodewordsPerBlock: 12 },\n ],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 6,\n alignmentPatternCenters: [6, 34],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 68 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 27 }],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 19 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 15 }],\n },\n ],\n },\n {\n infoBits: 0x07C94,\n versionNumber: 7,\n alignmentPatternCenters: [6, 22, 38],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 78 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 31 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 4, dataCodewordsPerBlock: 15 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 13 },\n { numBlocks: 1, dataCodewordsPerBlock: 14 },\n ],\n },\n ],\n },\n {\n infoBits: 0x085BC,\n versionNumber: 8,\n alignmentPatternCenters: [6, 24, 42],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 97 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 38 },\n { numBlocks: 2, dataCodewordsPerBlock: 39 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 18 },\n { numBlocks: 2, dataCodewordsPerBlock: 19 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 14 },\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x09A99,\n versionNumber: 9,\n alignmentPatternCenters: [6, 26, 46],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 116 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 36 },\n { numBlocks: 2, dataCodewordsPerBlock: 37 },\n ],\n },\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 16 },\n { numBlocks: 4, dataCodewordsPerBlock: 17 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 12 },\n { numBlocks: 4, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0A4D3,\n versionNumber: 10,\n alignmentPatternCenters: [6, 28, 50],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 68 },\n { numBlocks: 2, dataCodewordsPerBlock: 69 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 43 },\n { numBlocks: 1, dataCodewordsPerBlock: 44 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 19 },\n { numBlocks: 2, dataCodewordsPerBlock: 20 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 15 },\n { numBlocks: 2, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0BBF6,\n versionNumber: 11,\n alignmentPatternCenters: [6, 30, 54],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 81 }],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 50 },\n { numBlocks: 4, dataCodewordsPerBlock: 51 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 22 },\n { numBlocks: 4, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 12 },\n { numBlocks: 8, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0C762,\n versionNumber: 12,\n alignmentPatternCenters: [6, 32, 58],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 92 },\n { numBlocks: 2, dataCodewordsPerBlock: 93 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 36 },\n { numBlocks: 2, dataCodewordsPerBlock: 37 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 20 },\n { numBlocks: 6, dataCodewordsPerBlock: 21 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 14 },\n { numBlocks: 4, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0D847,\n versionNumber: 13,\n alignmentPatternCenters: [6, 34, 62],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 107 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 37 },\n { numBlocks: 1, dataCodewordsPerBlock: 38 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 20 },\n { numBlocks: 4, dataCodewordsPerBlock: 21 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 11 },\n { numBlocks: 4, dataCodewordsPerBlock: 12 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0E60D,\n versionNumber: 14,\n alignmentPatternCenters: [6, 26, 46, 66],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 115 },\n { numBlocks: 1, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 40 },\n { numBlocks: 5, dataCodewordsPerBlock: 41 },\n ],\n },\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 16 },\n { numBlocks: 5, dataCodewordsPerBlock: 17 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 12 },\n { numBlocks: 5, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0F928,\n versionNumber: 15,\n alignmentPatternCenters: [6, 26, 48, 70],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 87 },\n { numBlocks: 1, dataCodewordsPerBlock: 88 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 41 },\n { numBlocks: 5, dataCodewordsPerBlock: 42 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 24 },\n { numBlocks: 7, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 12 },\n { numBlocks: 7, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x10B78,\n versionNumber: 16,\n alignmentPatternCenters: [6, 26, 50, 74],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 98 },\n { numBlocks: 1, dataCodewordsPerBlock: 99 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 45 },\n { numBlocks: 3, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 19 },\n { numBlocks: 2, dataCodewordsPerBlock: 20 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 15 },\n { numBlocks: 13, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1145D,\n versionNumber: 17,\n alignmentPatternCenters: [6, 30, 54, 78],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 107 },\n { numBlocks: 5, dataCodewordsPerBlock: 108 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 46 },\n { numBlocks: 1, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 22 },\n { numBlocks: 15, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 17, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x12A17,\n versionNumber: 18,\n alignmentPatternCenters: [6, 30, 56, 82],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 120 },\n { numBlocks: 1, dataCodewordsPerBlock: 121 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 9, dataCodewordsPerBlock: 43 },\n { numBlocks: 4, dataCodewordsPerBlock: 44 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 22 },\n { numBlocks: 1, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x13532,\n versionNumber: 19,\n alignmentPatternCenters: [6, 30, 58, 86],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 113 },\n { numBlocks: 4, dataCodewordsPerBlock: 114 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 44 },\n { numBlocks: 11, dataCodewordsPerBlock: 45 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 21 },\n { numBlocks: 4, dataCodewordsPerBlock: 22 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 9, dataCodewordsPerBlock: 13 },\n { numBlocks: 16, dataCodewordsPerBlock: 14 },\n ],\n },\n ],\n },\n {\n infoBits: 0x149A6,\n versionNumber: 20,\n alignmentPatternCenters: [6, 34, 62, 90],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 107 },\n { numBlocks: 5, dataCodewordsPerBlock: 108 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 41 },\n { numBlocks: 13, dataCodewordsPerBlock: 42 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 24 },\n { numBlocks: 5, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 15 },\n { numBlocks: 10, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x15683,\n versionNumber: 21,\n alignmentPatternCenters: [6, 28, 50, 72, 94],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 116 },\n { numBlocks: 4, dataCodewordsPerBlock: 117 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 42 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 22 },\n { numBlocks: 6, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 16 },\n { numBlocks: 6, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x168C9,\n versionNumber: 22,\n alignmentPatternCenters: [6, 26, 50, 74, 98],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 111 },\n { numBlocks: 7, dataCodewordsPerBlock: 112 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 46 }],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 24 },\n { numBlocks: 16, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 34, dataCodewordsPerBlock: 13 }],\n },\n ],\n },\n {\n infoBits: 0x177EC,\n versionNumber: 23,\n alignmentPatternCenters: [6, 30, 54, 74, 102],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 121 },\n { numBlocks: 5, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 47 },\n { numBlocks: 14, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 16, dataCodewordsPerBlock: 15 },\n { numBlocks: 14, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x18EC4,\n versionNumber: 24,\n alignmentPatternCenters: [6, 28, 54, 80, 106],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 117 },\n { numBlocks: 4, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 45 },\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 24 },\n { numBlocks: 16, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 30, dataCodewordsPerBlock: 16 },\n { numBlocks: 2, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x191E1,\n versionNumber: 25,\n alignmentPatternCenters: [6, 32, 58, 84, 110],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 106 },\n { numBlocks: 4, dataCodewordsPerBlock: 107 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 47 },\n { numBlocks: 13, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 24 },\n { numBlocks: 22, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 15 },\n { numBlocks: 13, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1AFAB,\n versionNumber: 26,\n alignmentPatternCenters: [6, 30, 58, 86, 114],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 114 },\n { numBlocks: 2, dataCodewordsPerBlock: 115 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 46 },\n { numBlocks: 4, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 28, dataCodewordsPerBlock: 22 },\n { numBlocks: 6, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 33, dataCodewordsPerBlock: 16 },\n { numBlocks: 4, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1B08E,\n versionNumber: 27,\n alignmentPatternCenters: [6, 34, 62, 90, 118],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 122 },\n { numBlocks: 4, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 45 },\n { numBlocks: 3, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 23 },\n { numBlocks: 26, dataCodewordsPerBlock: 24 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 15 },\n { numBlocks: 28, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1CC1A,\n versionNumber: 28,\n alignmentPatternCenters: [6, 26, 50, 74, 98, 122],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 117 },\n { numBlocks: 10, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 45 },\n { numBlocks: 23, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 24 },\n { numBlocks: 31, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 15 },\n { numBlocks: 31, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1D33F,\n versionNumber: 29,\n alignmentPatternCenters: [6, 30, 54, 78, 102, 126],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 116 },\n { numBlocks: 7, dataCodewordsPerBlock: 117 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 21, dataCodewordsPerBlock: 45 },\n { numBlocks: 7, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 23 },\n { numBlocks: 37, dataCodewordsPerBlock: 24 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n { numBlocks: 26, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1ED75,\n versionNumber: 30,\n alignmentPatternCenters: [6, 26, 52, 78, 104, 130],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 115 },\n { numBlocks: 10, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 47 },\n { numBlocks: 10, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 24 },\n { numBlocks: 25, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 23, dataCodewordsPerBlock: 15 },\n { numBlocks: 25, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1F250,\n versionNumber: 31,\n alignmentPatternCenters: [6, 30, 56, 82, 108, 134],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 115 },\n { numBlocks: 3, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 46 },\n { numBlocks: 29, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 42, dataCodewordsPerBlock: 24 },\n { numBlocks: 1, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 23, dataCodewordsPerBlock: 15 },\n { numBlocks: 28, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x209D5,\n versionNumber: 32,\n alignmentPatternCenters: [6, 34, 60, 86, 112, 138],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 115 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 46 },\n { numBlocks: 23, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 24 },\n { numBlocks: 35, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n { numBlocks: 35, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x216F0,\n versionNumber: 33,\n alignmentPatternCenters: [6, 30, 58, 86, 114, 142],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 115 },\n { numBlocks: 1, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n { numBlocks: 21, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 29, dataCodewordsPerBlock: 24 },\n { numBlocks: 19, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 15 },\n { numBlocks: 46, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x228BA,\n versionNumber: 34,\n alignmentPatternCenters: [6, 34, 62, 90, 118, 146],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 115 },\n { numBlocks: 6, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n { numBlocks: 23, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 44, dataCodewordsPerBlock: 24 },\n { numBlocks: 7, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 59, dataCodewordsPerBlock: 16 },\n { numBlocks: 1, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x2379F,\n versionNumber: 35,\n alignmentPatternCenters: [6, 30, 54, 78, 102, 126, 150],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 121 },\n { numBlocks: 7, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 47 },\n { numBlocks: 26, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 39, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 15 },\n { numBlocks: 41, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x24B0B,\n versionNumber: 36,\n alignmentPatternCenters: [6, 24, 50, 76, 102, 128, 154],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 121 },\n { numBlocks: 14, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 47 },\n { numBlocks: 34, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 46, dataCodewordsPerBlock: 24 },\n { numBlocks: 10, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n { numBlocks: 64, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x2542E,\n versionNumber: 37,\n alignmentPatternCenters: [6, 28, 54, 80, 106, 132, 158],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 122 },\n { numBlocks: 4, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 29, dataCodewordsPerBlock: 46 },\n { numBlocks: 14, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 49, dataCodewordsPerBlock: 24 },\n { numBlocks: 10, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 24, dataCodewordsPerBlock: 15 },\n { numBlocks: 46, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x26A64,\n versionNumber: 38,\n alignmentPatternCenters: [6, 32, 58, 84, 110, 136, 162],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 122 },\n { numBlocks: 18, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 46 },\n { numBlocks: 32, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 48, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 42, dataCodewordsPerBlock: 15 },\n { numBlocks: 32, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x27541,\n versionNumber: 39,\n alignmentPatternCenters: [6, 26, 54, 82, 110, 138, 166],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 20, dataCodewordsPerBlock: 117 },\n { numBlocks: 4, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 40, dataCodewordsPerBlock: 47 },\n { numBlocks: 7, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 43, dataCodewordsPerBlock: 24 },\n { numBlocks: 22, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 15 },\n { numBlocks: 67, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x28C69,\n versionNumber: 40,\n alignmentPatternCenters: [6, 30, 58, 86, 114, 142, 170],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 118 },\n { numBlocks: 6, dataCodewordsPerBlock: 119 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 18, dataCodewordsPerBlock: 47 },\n { numBlocks: 31, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 34, dataCodewordsPerBlock: 24 },\n { numBlocks: 34, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 20, dataCodewordsPerBlock: 15 },\n { numBlocks: 61, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n];\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nfunction squareToQuadrilateral(p1, p2, p3, p4) {\n var dx3 = p1.x - p2.x + p3.x - p4.x;\n var dy3 = p1.y - p2.y + p3.y - p4.y;\n if (dx3 === 0 && dy3 === 0) { // Affine\n return {\n a11: p2.x - p1.x,\n a12: p2.y - p1.y,\n a13: 0,\n a21: p3.x - p2.x,\n a22: p3.y - p2.y,\n a23: 0,\n a31: p1.x,\n a32: p1.y,\n a33: 1,\n };\n }\n else {\n var dx1 = p2.x - p3.x;\n var dx2 = p4.x - p3.x;\n var dy1 = p2.y - p3.y;\n var dy2 = p4.y - p3.y;\n var denominator = dx1 * dy2 - dx2 * dy1;\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n return {\n a11: p2.x - p1.x + a13 * p2.x,\n a12: p2.y - p1.y + a13 * p2.y,\n a13: a13,\n a21: p4.x - p1.x + a23 * p4.x,\n a22: p4.y - p1.y + a23 * p4.y,\n a23: a23,\n a31: p1.x,\n a32: p1.y,\n a33: 1,\n };\n }\n}\nfunction quadrilateralToSquare(p1, p2, p3, p4) {\n // Here, the adjoint serves as the inverse:\n var sToQ = squareToQuadrilateral(p1, p2, p3, p4);\n return {\n a11: sToQ.a22 * sToQ.a33 - sToQ.a23 * sToQ.a32,\n a12: sToQ.a13 * sToQ.a32 - sToQ.a12 * sToQ.a33,\n a13: sToQ.a12 * sToQ.a23 - sToQ.a13 * sToQ.a22,\n a21: sToQ.a23 * sToQ.a31 - sToQ.a21 * sToQ.a33,\n a22: sToQ.a11 * sToQ.a33 - sToQ.a13 * sToQ.a31,\n a23: sToQ.a13 * sToQ.a21 - sToQ.a11 * sToQ.a23,\n a31: sToQ.a21 * sToQ.a32 - sToQ.a22 * sToQ.a31,\n a32: sToQ.a12 * sToQ.a31 - sToQ.a11 * sToQ.a32,\n a33: sToQ.a11 * sToQ.a22 - sToQ.a12 * sToQ.a21,\n };\n}\nfunction times(a, b) {\n return {\n a11: a.a11 * b.a11 + a.a21 * b.a12 + a.a31 * b.a13,\n a12: a.a12 * b.a11 + a.a22 * b.a12 + a.a32 * b.a13,\n a13: a.a13 * b.a11 + a.a23 * b.a12 + a.a33 * b.a13,\n a21: a.a11 * b.a21 + a.a21 * b.a22 + a.a31 * b.a23,\n a22: a.a12 * b.a21 + a.a22 * b.a22 + a.a32 * b.a23,\n a23: a.a13 * b.a21 + a.a23 * b.a22 + a.a33 * b.a23,\n a31: a.a11 * b.a31 + a.a21 * b.a32 + a.a31 * b.a33,\n a32: a.a12 * b.a31 + a.a22 * b.a32 + a.a32 * b.a33,\n a33: a.a13 * b.a31 + a.a23 * b.a32 + a.a33 * b.a33,\n };\n}\nfunction extract(image, location) {\n var qToS = quadrilateralToSquare({ x: 3.5, y: 3.5 }, { x: location.dimension - 3.5, y: 3.5 }, { x: location.dimension - 6.5, y: location.dimension - 6.5 }, { x: 3.5, y: location.dimension - 3.5 });\n var sToQ = squareToQuadrilateral(location.topLeft, location.topRight, location.alignmentPattern, location.bottomLeft);\n var transform = times(sToQ, qToS);\n var matrix = BitMatrix_1.BitMatrix.createEmpty(location.dimension, location.dimension);\n var mappingFunction = function (x, y) {\n var denominator = transform.a13 * x + transform.a23 * y + transform.a33;\n return {\n x: (transform.a11 * x + transform.a21 * y + transform.a31) / denominator,\n y: (transform.a12 * x + transform.a22 * y + transform.a32) / denominator,\n };\n };\n for (var y = 0; y < location.dimension; y++) {\n for (var x = 0; x < location.dimension; x++) {\n var xValue = x + 0.5;\n var yValue = y + 0.5;\n var sourcePixel = mappingFunction(xValue, yValue);\n matrix.set(x, y, image.get(Math.floor(sourcePixel.x), Math.floor(sourcePixel.y)));\n }\n }\n return {\n matrix: matrix,\n mappingFunction: mappingFunction,\n };\n}\nexports.extract = extract;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MAX_FINDERPATTERNS_TO_SEARCH = 4;\nvar MIN_QUAD_RATIO = 0.5;\nvar MAX_QUAD_RATIO = 1.5;\nvar distance = function (a, b) { return Math.sqrt(Math.pow((b.x - a.x), 2) + Math.pow((b.y - a.y), 2)); };\nfunction sum(values) {\n return values.reduce(function (a, b) { return a + b; });\n}\n// Takes three finder patterns and organizes them into topLeft, topRight, etc\nfunction reorderFinderPatterns(pattern1, pattern2, pattern3) {\n var _a, _b, _c, _d;\n // Find distances between pattern centers\n var oneTwoDistance = distance(pattern1, pattern2);\n var twoThreeDistance = distance(pattern2, pattern3);\n var oneThreeDistance = distance(pattern1, pattern3);\n var bottomLeft;\n var topLeft;\n var topRight;\n // Assume one closest to other two is B; A and C will just be guesses at first\n if (twoThreeDistance >= oneTwoDistance && twoThreeDistance >= oneThreeDistance) {\n _a = [pattern2, pattern1, pattern3], bottomLeft = _a[0], topLeft = _a[1], topRight = _a[2];\n }\n else if (oneThreeDistance >= twoThreeDistance && oneThreeDistance >= oneTwoDistance) {\n _b = [pattern1, pattern2, pattern3], bottomLeft = _b[0], topLeft = _b[1], topRight = _b[2];\n }\n else {\n _c = [pattern1, pattern3, pattern2], bottomLeft = _c[0], topLeft = _c[1], topRight = _c[2];\n }\n // Use cross product to figure out whether bottomLeft (A) and topRight (C) are correct or flipped in relation to topLeft (B)\n // This asks whether BC x BA has a positive z component, which is the arrangement we want. If it's negative, then\n // we've got it flipped around and should swap topRight and bottomLeft.\n if (((topRight.x - topLeft.x) * (bottomLeft.y - topLeft.y)) - ((topRight.y - topLeft.y) * (bottomLeft.x - topLeft.x)) < 0) {\n _d = [topRight, bottomLeft], bottomLeft = _d[0], topRight = _d[1];\n }\n return { bottomLeft: bottomLeft, topLeft: topLeft, topRight: topRight };\n}\n// Computes the dimension (number of modules on a side) of the QR Code based on the position of the finder patterns\nfunction computeDimension(topLeft, topRight, bottomLeft, matrix) {\n var moduleSize = (sum(countBlackWhiteRun(topLeft, bottomLeft, matrix, 5)) / 7 + // Divide by 7 since the ratio is 1:1:3:1:1\n sum(countBlackWhiteRun(topLeft, topRight, matrix, 5)) / 7 +\n sum(countBlackWhiteRun(bottomLeft, topLeft, matrix, 5)) / 7 +\n sum(countBlackWhiteRun(topRight, topLeft, matrix, 5)) / 7) / 4;\n if (moduleSize < 1) {\n throw new Error(\"Invalid module size\");\n }\n var topDimension = Math.round(distance(topLeft, topRight) / moduleSize);\n var sideDimension = Math.round(distance(topLeft, bottomLeft) / moduleSize);\n var dimension = Math.floor((topDimension + sideDimension) / 2) + 7;\n switch (dimension % 4) {\n case 0:\n dimension++;\n break;\n case 2:\n dimension--;\n break;\n }\n return { dimension: dimension, moduleSize: moduleSize };\n}\n// Takes an origin point and an end point and counts the sizes of the black white run from the origin towards the end point.\n// Returns an array of elements, representing the pixel size of the black white run.\n// Uses a variant of http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\nfunction countBlackWhiteRunTowardsPoint(origin, end, matrix, length) {\n var switchPoints = [{ x: Math.floor(origin.x), y: Math.floor(origin.y) }];\n var steep = Math.abs(end.y - origin.y) > Math.abs(end.x - origin.x);\n var fromX;\n var fromY;\n var toX;\n var toY;\n if (steep) {\n fromX = Math.floor(origin.y);\n fromY = Math.floor(origin.x);\n toX = Math.floor(end.y);\n toY = Math.floor(end.x);\n }\n else {\n fromX = Math.floor(origin.x);\n fromY = Math.floor(origin.y);\n toX = Math.floor(end.x);\n toY = Math.floor(end.y);\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = Math.floor(-dx / 2);\n var xStep = fromX < toX ? 1 : -1;\n var yStep = fromY < toY ? 1 : -1;\n var currentPixel = true;\n // Loop up until x == toX, but not beyond\n for (var x = fromX, y = fromY; x !== toX + xStep; x += xStep) {\n // Does current pixel mean we have moved white to black or vice versa?\n // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n // color, advance to next state or end if we are in state 2 already\n var realX = steep ? y : x;\n var realY = steep ? x : y;\n if (matrix.get(realX, realY) !== currentPixel) {\n currentPixel = !currentPixel;\n switchPoints.push({ x: realX, y: realY });\n if (switchPoints.length === length + 1) {\n break;\n }\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += yStep;\n error -= dx;\n }\n }\n var distances = [];\n for (var i = 0; i < length; i++) {\n if (switchPoints[i] && switchPoints[i + 1]) {\n distances.push(distance(switchPoints[i], switchPoints[i + 1]));\n }\n else {\n distances.push(0);\n }\n }\n return distances;\n}\n// Takes an origin point and an end point and counts the sizes of the black white run in the origin point\n// along the line that intersects with the end point. Returns an array of elements, representing the pixel sizes\n// of the black white run. Takes a length which represents the number of switches from black to white to look for.\nfunction countBlackWhiteRun(origin, end, matrix, length) {\n var _a;\n var rise = end.y - origin.y;\n var run = end.x - origin.x;\n var towardsEnd = countBlackWhiteRunTowardsPoint(origin, end, matrix, Math.ceil(length / 2));\n var awayFromEnd = countBlackWhiteRunTowardsPoint(origin, { x: origin.x - run, y: origin.y - rise }, matrix, Math.ceil(length / 2));\n var middleValue = towardsEnd.shift() + awayFromEnd.shift() - 1; // Substract one so we don't double count a pixel\n return (_a = awayFromEnd.concat(middleValue)).concat.apply(_a, towardsEnd);\n}\n// Takes in a black white run and an array of expected ratios. Returns the average size of the run as well as the \"error\" -\n// that is the amount the run diverges from the expected ratio\nfunction scoreBlackWhiteRun(sequence, ratios) {\n var averageSize = sum(sequence) / sum(ratios);\n var error = 0;\n ratios.forEach(function (ratio, i) {\n error += Math.pow((sequence[i] - ratio * averageSize), 2);\n });\n return { averageSize: averageSize, error: error };\n}\n// Takes an X,Y point and an array of sizes and scores the point against those ratios.\n// For example for a finder pattern takes the ratio list of 1:1:3:1:1 and checks horizontal, vertical and diagonal ratios\n// against that.\nfunction scorePattern(point, ratios, matrix) {\n try {\n var horizontalRun = countBlackWhiteRun(point, { x: -1, y: point.y }, matrix, ratios.length);\n var verticalRun = countBlackWhiteRun(point, { x: point.x, y: -1 }, matrix, ratios.length);\n var topLeftPoint = {\n x: Math.max(0, point.x - point.y) - 1,\n y: Math.max(0, point.y - point.x) - 1,\n };\n var topLeftBottomRightRun = countBlackWhiteRun(point, topLeftPoint, matrix, ratios.length);\n var bottomLeftPoint = {\n x: Math.min(matrix.width, point.x + point.y) + 1,\n y: Math.min(matrix.height, point.y + point.x) + 1,\n };\n var bottomLeftTopRightRun = countBlackWhiteRun(point, bottomLeftPoint, matrix, ratios.length);\n var horzError = scoreBlackWhiteRun(horizontalRun, ratios);\n var vertError = scoreBlackWhiteRun(verticalRun, ratios);\n var diagDownError = scoreBlackWhiteRun(topLeftBottomRightRun, ratios);\n var diagUpError = scoreBlackWhiteRun(bottomLeftTopRightRun, ratios);\n var ratioError = Math.sqrt(horzError.error * horzError.error +\n vertError.error * vertError.error +\n diagDownError.error * diagDownError.error +\n diagUpError.error * diagUpError.error);\n var avgSize = (horzError.averageSize + vertError.averageSize + diagDownError.averageSize + diagUpError.averageSize) / 4;\n var sizeError = (Math.pow((horzError.averageSize - avgSize), 2) +\n Math.pow((vertError.averageSize - avgSize), 2) +\n Math.pow((diagDownError.averageSize - avgSize), 2) +\n Math.pow((diagUpError.averageSize - avgSize), 2)) / avgSize;\n return ratioError + sizeError;\n }\n catch (_a) {\n return Infinity;\n }\n}\nfunction recenterLocation(matrix, p) {\n var leftX = Math.round(p.x);\n while (matrix.get(leftX, Math.round(p.y))) {\n leftX--;\n }\n var rightX = Math.round(p.x);\n while (matrix.get(rightX, Math.round(p.y))) {\n rightX++;\n }\n var x = (leftX + rightX) / 2;\n var topY = Math.round(p.y);\n while (matrix.get(Math.round(x), topY)) {\n topY--;\n }\n var bottomY = Math.round(p.y);\n while (matrix.get(Math.round(x), bottomY)) {\n bottomY++;\n }\n var y = (topY + bottomY) / 2;\n return { x: x, y: y };\n}\nfunction locate(matrix) {\n var finderPatternQuads = [];\n var activeFinderPatternQuads = [];\n var alignmentPatternQuads = [];\n var activeAlignmentPatternQuads = [];\n var _loop_1 = function (y) {\n var length_1 = 0;\n var lastBit = false;\n var scans = [0, 0, 0, 0, 0];\n var _loop_2 = function (x) {\n var v = matrix.get(x, y);\n if (v === lastBit) {\n length_1++;\n }\n else {\n scans = [scans[1], scans[2], scans[3], scans[4], length_1];\n length_1 = 1;\n lastBit = v;\n // Do the last 5 color changes ~ match the expected ratio for a finder pattern? 1:1:3:1:1 of b:w:b:w:b\n var averageFinderPatternBlocksize = sum(scans) / 7;\n var validFinderPattern = Math.abs(scans[0] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[1] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[2] - 3 * averageFinderPatternBlocksize) < 3 * averageFinderPatternBlocksize &&\n Math.abs(scans[3] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[4] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n !v; // And make sure the current pixel is white since finder patterns are bordered in white\n // Do the last 3 color changes ~ match the expected ratio for an alignment pattern? 1:1:1 of w:b:w\n var averageAlignmentPatternBlocksize = sum(scans.slice(-3)) / 3;\n var validAlignmentPattern = Math.abs(scans[2] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n Math.abs(scans[3] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n Math.abs(scans[4] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n v; // Is the current pixel black since alignment patterns are bordered in black\n if (validFinderPattern) {\n // Compute the start and end x values of the large center black square\n var endX_1 = x - scans[3] - scans[4];\n var startX_1 = endX_1 - scans[2];\n var line = { startX: startX_1, endX: endX_1, y: y };\n // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with\n // that line as the starting point.\n var matchingQuads = activeFinderPatternQuads.filter(function (q) {\n return (startX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||\n (endX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||\n (startX_1 <= q.bottom.startX && endX_1 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&\n (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));\n });\n if (matchingQuads.length > 0) {\n matchingQuads[0].bottom = line;\n }\n else {\n activeFinderPatternQuads.push({ top: line, bottom: line });\n }\n }\n if (validAlignmentPattern) {\n // Compute the start and end x values of the center black square\n var endX_2 = x - scans[4];\n var startX_2 = endX_2 - scans[3];\n var line = { startX: startX_2, y: y, endX: endX_2 };\n // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with\n // that line as the starting point.\n var matchingQuads = activeAlignmentPatternQuads.filter(function (q) {\n return (startX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||\n (endX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||\n (startX_2 <= q.bottom.startX && endX_2 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&\n (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));\n });\n if (matchingQuads.length > 0) {\n matchingQuads[0].bottom = line;\n }\n else {\n activeAlignmentPatternQuads.push({ top: line, bottom: line });\n }\n }\n }\n };\n for (var x = -1; x <= matrix.width; x++) {\n _loop_2(x);\n }\n finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y !== y && q.bottom.y - q.top.y >= 2; }));\n activeFinderPatternQuads = activeFinderPatternQuads.filter(function (q) { return q.bottom.y === y; });\n alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y !== y; }));\n activeAlignmentPatternQuads = activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y === y; });\n };\n for (var y = 0; y <= matrix.height; y++) {\n _loop_1(y);\n }\n finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y - q.top.y >= 2; }));\n alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads);\n var finderPatternGroups = finderPatternQuads\n .filter(function (q) { return q.bottom.y - q.top.y >= 2; }) // All quads must be at least 2px tall since the center square is larger than a block\n .map(function (q) {\n var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;\n var y = (q.top.y + q.bottom.y + 1) / 2;\n if (!matrix.get(Math.round(x), Math.round(y))) {\n return;\n }\n var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, q.bottom.y - q.top.y + 1];\n var size = sum(lengths) / lengths.length;\n var score = scorePattern({ x: Math.round(x), y: Math.round(y) }, [1, 1, 3, 1, 1], matrix);\n return { score: score, x: x, y: y, size: size };\n })\n .filter(function (q) { return !!q; }) // Filter out any rejected quads from above\n .sort(function (a, b) { return a.score - b.score; })\n // Now take the top finder pattern options and try to find 2 other options with a similar size.\n .map(function (point, i, finderPatterns) {\n if (i > MAX_FINDERPATTERNS_TO_SEARCH) {\n return null;\n }\n var otherPoints = finderPatterns\n .filter(function (p, ii) { return i !== ii; })\n .map(function (p) { return ({ x: p.x, y: p.y, score: p.score + (Math.pow((p.size - point.size), 2)) / point.size, size: p.size }); })\n .sort(function (a, b) { return a.score - b.score; });\n if (otherPoints.length < 2) {\n return null;\n }\n var score = point.score + otherPoints[0].score + otherPoints[1].score;\n return { points: [point].concat(otherPoints.slice(0, 2)), score: score };\n })\n .filter(function (q) { return !!q; }) // Filter out any rejected finder patterns from above\n .sort(function (a, b) { return a.score - b.score; });\n if (finderPatternGroups.length === 0) {\n return null;\n }\n var _a = reorderFinderPatterns(finderPatternGroups[0].points[0], finderPatternGroups[0].points[1], finderPatternGroups[0].points[2]), topRight = _a.topRight, topLeft = _a.topLeft, bottomLeft = _a.bottomLeft;\n var alignment = findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft);\n var result = [];\n if (alignment) {\n result.push({\n alignmentPattern: { x: alignment.alignmentPattern.x, y: alignment.alignmentPattern.y },\n bottomLeft: { x: bottomLeft.x, y: bottomLeft.y },\n dimension: alignment.dimension,\n topLeft: { x: topLeft.x, y: topLeft.y },\n topRight: { x: topRight.x, y: topRight.y },\n });\n }\n // We normally use the center of the quads as the location of the tracking points, which is optimal for most cases and will account\n // for a skew in the image. However, In some cases, a slight skew might not be real and instead be caused by image compression\n // errors and/or low resolution. For those cases, we'd be better off centering the point exactly in the middle of the black area. We\n // compute and return the location data for the naively centered points as it is little additional work and allows for multiple\n // attempts at decoding harder images.\n var midTopRight = recenterLocation(matrix, topRight);\n var midTopLeft = recenterLocation(matrix, topLeft);\n var midBottomLeft = recenterLocation(matrix, bottomLeft);\n var centeredAlignment = findAlignmentPattern(matrix, alignmentPatternQuads, midTopRight, midTopLeft, midBottomLeft);\n if (centeredAlignment) {\n result.push({\n alignmentPattern: { x: centeredAlignment.alignmentPattern.x, y: centeredAlignment.alignmentPattern.y },\n bottomLeft: { x: midBottomLeft.x, y: midBottomLeft.y },\n topLeft: { x: midTopLeft.x, y: midTopLeft.y },\n topRight: { x: midTopRight.x, y: midTopRight.y },\n dimension: centeredAlignment.dimension,\n });\n }\n if (result.length === 0) {\n return null;\n }\n return result;\n}\nexports.locate = locate;\nfunction findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft) {\n var _a;\n // Now that we've found the three finder patterns we can determine the blockSize and the size of the QR code.\n // We'll use these to help find the alignment pattern but also later when we do the extraction.\n var dimension;\n var moduleSize;\n try {\n (_a = computeDimension(topLeft, topRight, bottomLeft, matrix), dimension = _a.dimension, moduleSize = _a.moduleSize);\n }\n catch (e) {\n return null;\n }\n // Now find the alignment pattern\n var bottomRightFinderPattern = {\n x: topRight.x - topLeft.x + bottomLeft.x,\n y: topRight.y - topLeft.y + bottomLeft.y,\n };\n var modulesBetweenFinderPatterns = ((distance(topLeft, bottomLeft) + distance(topLeft, topRight)) / 2 / moduleSize);\n var correctionToTopLeft = 1 - (3 / modulesBetweenFinderPatterns);\n var expectedAlignmentPattern = {\n x: topLeft.x + correctionToTopLeft * (bottomRightFinderPattern.x - topLeft.x),\n y: topLeft.y + correctionToTopLeft * (bottomRightFinderPattern.y - topLeft.y),\n };\n var alignmentPatterns = alignmentPatternQuads\n .map(function (q) {\n var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;\n var y = (q.top.y + q.bottom.y + 1) / 2;\n if (!matrix.get(Math.floor(x), Math.floor(y))) {\n return;\n }\n var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, (q.bottom.y - q.top.y + 1)];\n var size = sum(lengths) / lengths.length;\n var sizeScore = scorePattern({ x: Math.floor(x), y: Math.floor(y) }, [1, 1, 1], matrix);\n var score = sizeScore + distance({ x: x, y: y }, expectedAlignmentPattern);\n return { x: x, y: y, score: score };\n })\n .filter(function (v) { return !!v; })\n .sort(function (a, b) { return a.score - b.score; });\n // If there are less than 15 modules between finder patterns it's a version 1 QR code and as such has no alignmemnt pattern\n // so we can only use our best guess.\n var alignmentPattern = modulesBetweenFinderPatterns >= 15 && alignmentPatterns.length ? alignmentPatterns[0] : expectedAlignmentPattern;\n return { alignmentPattern: alignmentPattern, dimension: dimension };\n}\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 string | null;\n}\n\nexport type WebcamProps = Omit, \"ref\"> & {\n audio: boolean;\n audioConstraints?: MediaStreamConstraints[\"audio\"];\n disablePictureInPicture: boolean;\n forceScreenshotSourceSize: boolean;\n imageSmoothing: boolean;\n mirrored: boolean;\n minScreenshotHeight?: number;\n minScreenshotWidth?: number;\n onUserMedia: (stream: MediaStream) => void;\n onUserMediaError: (error: string | DOMException) => void;\n screenshotFormat: \"image/webp\" | \"image/png\" | \"image/jpeg\";\n screenshotQuality: number;\n videoConstraints?: MediaStreamConstraints[\"video\"];\n children?: (childrenProps: ChildrenProps) => JSX.Element;\n}\n\ninterface WebcamState {\n hasUserMedia: boolean;\n src?: string;\n}\n\nexport default class Webcam extends React.Component {\n static defaultProps = {\n audio: false,\n disablePictureInPicture: false,\n forceScreenshotSourceSize: false,\n imageSmoothing: true,\n mirrored: false,\n onUserMedia: () => undefined,\n onUserMediaError: () => undefined,\n screenshotFormat: \"image/webp\",\n screenshotQuality: 0.92,\n };\n\n private canvas: HTMLCanvasElement | null = null;\n\n private ctx: CanvasRenderingContext2D | null = null;\n\n private requestUserMediaId = 0;\n\n private unmounted = false;\n\n stream: MediaStream | null;\n\n video: HTMLVideoElement | null;\n\n constructor(props: WebcamProps) {\n super(props);\n this.state = {\n hasUserMedia: false\n };\n }\n\n componentDidMount() {\n const { state, props } = this;\n this.unmounted = false;\n\n if (!hasGetUserMedia()) {\n props.onUserMediaError(\"getUserMedia not supported\");\n\n return;\n }\n\n if (!state.hasUserMedia) {\n this.requestUserMedia();\n }\n\n if (props.children && typeof props.children != 'function') {\n console.warn(\"children must be a function\");\n }\n }\n\n componentDidUpdate(nextProps: WebcamProps) {\n const { props } = this;\n\n if (!hasGetUserMedia()) {\n props.onUserMediaError(\"getUserMedia not supported\");\n\n return;\n }\n\n const audioConstraintsChanged =\n JSON.stringify(nextProps.audioConstraints) !==\n JSON.stringify(props.audioConstraints);\n const videoConstraintsChanged =\n JSON.stringify(nextProps.videoConstraints) !==\n JSON.stringify(props.videoConstraints);\n const minScreenshotWidthChanged =\n nextProps.minScreenshotWidth !== props.minScreenshotWidth;\n const minScreenshotHeightChanged =\n nextProps.minScreenshotHeight !== props.minScreenshotHeight;\n if (\n videoConstraintsChanged ||\n minScreenshotWidthChanged ||\n minScreenshotHeightChanged\n ) {\n this.canvas = null;\n this.ctx = null;\n }\n if (audioConstraintsChanged || videoConstraintsChanged) {\n this.stopAndCleanup();\n this.requestUserMedia();\n }\n }\n\n componentWillUnmount() {\n this.unmounted = true;\n this.stopAndCleanup();\n }\n\n private static stopMediaStream(stream: MediaStream | null) {\n if (stream) {\n if (stream.getVideoTracks && stream.getAudioTracks) {\n stream.getVideoTracks().map(track => {\n stream.removeTrack(track);\n track.stop();\n });\n stream.getAudioTracks().map(track => {\n stream.removeTrack(track);\n track.stop()\n });\n } else {\n ((stream as unknown) as MediaStreamTrack).stop();\n }\n }\n }\n\n private stopAndCleanup() {\n const { state } = this;\n\n if (state.hasUserMedia) {\n Webcam.stopMediaStream(this.stream);\n\n if (state.src) {\n window.URL.revokeObjectURL(state.src);\n }\n }\n }\n\n getScreenshot(screenshotDimensions?: ScreenshotDimensions) {\n const { state, props } = this;\n\n if (!state.hasUserMedia) return null;\n\n const canvas = this.getCanvas(screenshotDimensions);\n return (\n canvas &&\n canvas.toDataURL(props.screenshotFormat, props.screenshotQuality)\n );\n }\n\n getCanvas(screenshotDimensions?: ScreenshotDimensions) {\n const { state, props } = this;\n\n if (!this.video) {\n return null;\n }\n\n if (!state.hasUserMedia || !this.video.videoHeight) return null;\n\n if (!this.ctx) {\n let canvasWidth = this.video.videoWidth;\n let canvasHeight = this.video.videoHeight;\n if (!this.props.forceScreenshotSourceSize) {\n const aspectRatio = canvasWidth / canvasHeight;\n\n canvasWidth = props.minScreenshotWidth || this.video.clientWidth;\n canvasHeight = canvasWidth / aspectRatio;\n\n if (\n props.minScreenshotHeight &&\n canvasHeight < props.minScreenshotHeight\n ) {\n canvasHeight = props.minScreenshotHeight;\n canvasWidth = canvasHeight * aspectRatio;\n }\n }\n\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = screenshotDimensions?.width || canvasWidth;\n this.canvas.height = screenshotDimensions?.height || canvasHeight;\n this.ctx = this.canvas.getContext(\"2d\");\n }\n\n const { ctx, canvas } = this;\n\n if (ctx && canvas) {\n\n // adjust the height and width of the canvas to the given dimensions\n canvas.width = screenshotDimensions?.width || canvas.width;\n canvas.height = screenshotDimensions?.height || canvas.height;\n\n // mirror the screenshot\n if (props.mirrored) {\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n }\n\n ctx.imageSmoothingEnabled = props.imageSmoothing;\n ctx.drawImage(this.video, 0, 0, screenshotDimensions?.width || canvas.width, screenshotDimensions?.height || canvas.height);\n\n // invert mirroring\n if (props.mirrored) {\n ctx.scale(-1, 1);\n ctx.translate(-canvas.width, 0);\n }\n }\n\n return canvas;\n }\n\n private requestUserMedia() {\n const { props } = this;\n\n const sourceSelected = (\n audioConstraints: boolean | MediaTrackConstraints | undefined,\n videoConstraints: boolean | MediaTrackConstraints | undefined,\n ) => {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== \"undefined\" ? videoConstraints : true\n };\n\n if (props.audio) {\n constraints.audio =\n typeof audioConstraints !== \"undefined\" ? audioConstraints : true;\n }\n\n this.requestUserMediaId++\n const myRequestUserMediaId = this.requestUserMediaId\n\n navigator.mediaDevices\n .getUserMedia(constraints)\n .then(stream => {\n if (this.unmounted || myRequestUserMediaId !== this.requestUserMediaId) {\n Webcam.stopMediaStream(stream);\n } else {\n this.handleUserMedia(null, stream);\n }\n })\n .catch(e => {\n this.handleUserMedia(e);\n });\n };\n\n if (\"mediaDevices\" in navigator) {\n sourceSelected(props.audioConstraints, props.videoConstraints);\n } else {\n const optionalSource = (id: string | null) => ({ optional: [{ sourceId: id }] }) as MediaTrackConstraints;\n\n const constraintToSourceId = (constraint) => {\n const { deviceId } = constraint;\n\n if (typeof deviceId === \"string\") {\n return deviceId;\n }\n\n if (Array.isArray(deviceId) && deviceId.length > 0) {\n return deviceId[0];\n }\n\n if (typeof deviceId === \"object\" && deviceId.ideal) {\n return deviceId.ideal;\n }\n\n return null;\n };\n\n // @ts-ignore: deprecated api\n MediaStreamTrack.getSources(sources => {\n let audioSource: string | null = null;\n let videoSource: string | null = null;\n\n sources.forEach((source: MediaStreamTrack) => {\n if (source.kind === \"audio\") {\n audioSource = source.id;\n } else if (source.kind === \"video\") {\n videoSource = source.id;\n }\n });\n\n const audioSourceId = constraintToSourceId(props.audioConstraints);\n if (audioSourceId) {\n audioSource = audioSourceId;\n }\n\n const videoSourceId = constraintToSourceId(props.videoConstraints);\n if (videoSourceId) {\n videoSource = videoSourceId;\n }\n\n sourceSelected(\n optionalSource(audioSource),\n optionalSource(videoSource)\n );\n });\n }\n }\n\n private handleUserMedia(err, stream?: MediaStream) {\n const { props } = this;\n\n if (err || !stream) {\n this.setState({ hasUserMedia: false });\n props.onUserMediaError(err);\n\n return;\n }\n\n this.stream = stream;\n\n try {\n if (this.video) {\n this.video.srcObject = stream;\n }\n this.setState({ hasUserMedia: true });\n } catch (error) {\n this.setState({\n hasUserMedia: true,\n src: window.URL.createObjectURL(stream)\n });\n }\n\n props.onUserMedia(stream);\n }\n\n render() {\n const { state, props } = this;\n\n const {\n audio,\n forceScreenshotSourceSize,\n disablePictureInPicture,\n onUserMedia,\n onUserMediaError,\n screenshotFormat,\n screenshotQuality,\n minScreenshotWidth,\n minScreenshotHeight,\n audioConstraints,\n videoConstraints,\n imageSmoothing,\n mirrored,\n style = {},\n children,\n ...rest\n } = props;\n\n const videoStyle = mirrored ? { ...style, transform: `${style.transform || \"\"} scaleX(-1)` } : style;\n\n const childrenProps: ChildrenProps = {\n getScreenshot: this.getScreenshot.bind(this),\n };\n\n return (\n <>\n {\n this.video = ref;\n }}\n style={videoStyle}\n {...rest}\n />\n {children && children(childrenProps)}\n \n );\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a